В комментариях меня просили показать, как делать авторизацию в стандартном загрузчике с помощью куки. Сразу оговорюсь на всех сайтах это не пройдет, и куки живут не вечно, т.к что если часто делать парсинг, но нужно обновлять значения куки.
Итак, перейдем к делу. Возьмем всеми любимый форум Датакола )
Самый простой способ узнать какие куки прописывает сайт - это посмотреть их в браузере. Заходим на форум, если не залогинены, то логинемся.
Я люблю браузер Хром, и на его основе буду и показывать. Возле строки с адресом страницы нажимаем на кнопку "Информация о сайте".
Видим заголовок "Файлы cookie" и ниже ссылка "Используется ... файлов cookie", нажимаем на нее и видим какие куки используются для данного сайта.
Нам нужно найти/угадать/подобрать те куки которые отвечают за авторизацию. На всех сайтах это могут быть разные названия и значения. Обычно ищите все, что связано с:
- session
- hash
- login
- user
- phpsid
- id
Т.е то, что логически может быть связано с авторизацией, ищите набор символов/цифр, упоминание вашего логина, ID.
Куки объединены по доменам. Если сайт на поддомене (как в нашем случае), то это скорее всего будет основной домен и сам поддомен, который открыт, также если есть метрика Яндекса, то будет yandex.ru, mc.yandex.ru. На заметку все куки начинающиеся с _ym_ сразу откидывайте - это Яндекс.
Так как у нас поддомен начинаем смотреть с него - forum.web-data-extractor.net. Раскрываем список "Файлы cookie".
И начинаем искать, что нам может логически подойти. В низу видим bbsessionhash, пробуем его
Добавляем в наш проект авторизацию по кукам. Загрузка - Стандартный - Галочка сохранять Cookie - Cookie и вводим в формате который описан в справке (надеюсь вы ознакомились уже со справкой)) )
bbsessionhash=значение;forum.web-data-extractor.net;/
bbsessionhash - название куки
значение - значение куки
forum.web-data-extractor.net - домен
/ - путь
Все эти данные я выделил на скрине выше, просто копируйте их и вставляйте. Если нужно будет прописать несколько куки, то новый делаете аналогично, с новой строки.
Чтобы проверить, создадим поле и подберем для него xpath или регулярку, которая будет находить данные видимые после авторизаци, например логин.
Создадим поле name и пропишем xpath
//a[contains(@href, 'member.php')]
Те кто не знаком с моим материалом по подбору xpath, рекомендую прочесть статью "Xpath в Datacol: продвинутый уровень. Часть 1".
Тестируем и видим, что все сработало!
P.S это частный случай, для других сайтов нужно пробовать, бывает нужно несколько куки прописать, а бывает, что это не помогает и нужно только делать сценарий.
Спасибо за статью. Но в моем случае не помогло на https://jobs.ua
Вы хоть пишите, что делали. Там также нужно добавить всего один куки rplus. У меня все получилось
http://prntscr.com/f2fqy1
Да, только метод "берешь и пробуешь". Т.к называть куки разработчики могут на свое усмотрение.
Если вы этим будете часто заниматься, то начнете разбираться в некоторых. Например, исключать куки от аналитики, чатов и прочих сервисов.
Я ввожу в Selector вот этот куки rplus=ocdegrkte3bh342ogo21uru;jobs.ua;/ и ничего не происходит. Как показывало, что не залогинированый, так и показывает.
Забудьте вы про селектор. Я уверен на 99% ничего не работает из тех настроек. Что бы там не указывал оно не влияет.
Сделайте так: включите режим браузера, зайдите в редактор сценарием и войдите там через свой логин-пароль. Он запомнит это. Далее через пикер подбирете нужные вам поля. Как все сделаете - отключите режим браузера.
Это что бы повторно не набирал логин с паролем? И почему селектор не работает? Как альтернатива xpath. Regux может серьезно помочь. И вот у меня задача отпарсить выражения из контекста соцсетей. Это я так понимаю можно сделать, только через regux. В тексте отельные выражения не выделишь. И можно ли писать самостоятельно регулярные выражения для DataCol? Я немного ознакомился с правилами написания метасиволов
.
Спасибо за контент. Единственное место, где толково объяснили, как вводить cookies в DataCol. Все перерыл. Без вас бы не разобрался.
И по работе c данными, только у вас сдвинулось с мертвой точки. Подписался. Буду внимательно следить за вашими постами.
Подскажите, а как передавай куки в загрузке через Браузер. не системный, а в датаколе
К сожалению, нет такой возможности в Датакол.