@UserTrue said in Работа с куки:
@vitalik8217 кроме кук в профиле могут храниться данные которые также проверяются
Может ещё стоит обратить внимание на заголовки, или куки даются на определённое время, которые проходит
Здравствуйте. Пытаюсь настроить многопоточный парсер ссылок. Нужно, чтобы каждый поток создавал для себя текстовый файл, в который сохранял куки, а потом читал из этого же файла. Короче, чтобы текстовый файл с куками был привязан к одному потоку, чтобы другие потоки его не использовали. Суть в том, что после ввода капчи, можно парсить примерно 7 страниц, а потом опять капча вылетает. Вот я и хочу, чтобы каждый поток отрабатывал примерно 7 ссылок, потом решал капчу, затем сохранял куки в свой текстовый файл, а новый запуск этого потока начинался с загрузки куки.
@Napulsnik Есть же возможность сохранять куки. Не пойму в чем проблема?
Сохраняем куки в переменную, затем ее в фаил . При запуске просто читаем фаил в переменную и загружаем из нее куки.
@Napulsnik Это вообще имеет смысл только, если на сайте авторизируешься.
@Napulsnik используй Получить номер потока, а дальше думаю все ясно.
@out А вот это интересно, спасибо.
@Napulsnik said in Как привязать куки к потоку?:
@Denis_krsk В таком варианте все потоки будут писать в 1 файл.
Дак файлы надо обзывать по имени логина или по любому другому уникальному идентификатору. Я вообще не вижу смысла привязывать куки к потокам. Куки нужны для сохранения авторизации между сессиями.
@Denis_krsk В моем случае, авторизация не нужна. Сайт дает парсить себя примерно до 7 ссылок без капчи для 1 браузера (1 куки). IP не играет роли. Значит мне нужно размножить эти браузеры до кол-ва потоков, и обязательно, чтобы каждый поток имел свои куки, чтобы он мог отработать все 7 ссылок.
@Napulsnik и если уж давать совет, как проще это сделать, без сохранений кук. То почему бы тебе попросту в одном потоке не парсить сразу 7 раз или сколько там дает. После каждого парсинга, проверяй появилась ли капча, если да, то завершай поток, а можно и не завершать , а снова решать капчу и парсить 7 раз. Но для оптимизации, лучше завершать (не делать бесконечный парсинг внутри одного потока)...
@out Вся проблема в том, что при первой загрузке страницы появляется капча. Т.е. запуск нового потока сразу сопровождается появлением капчи. Поэтому капчу нужно решить, сохранить куки, пропарсить 7 ссылок на этих куках, затем сново решить капчу и т.д.
@Napulsnik said in Как привязать куки к потоку?:
Поэтому капчу нужно решить, сохранить куки, пропарсить 7 ссылок на этих куках, затем сново решить капчу и т.д.
не знаю конечно же полной логики скрипта у вас, но не проще ли так:
1 капчу нужно решить
2 пропарсить 7 ссылок
в одном потоке. Вроде очевидно, что это меньше телодвижений нужно.
Также еще нужно проверить, может если кукикасам дать полежать 30-60-120сек то сайт снова даст пропарсить 7 ссылок ,но уже без распознавания капчти.
А может тогда вообще нужно решить каптчу, выдерживать паузу в 2-10сек перед парсингом новых ссылок, тогда вообще капч не будет?
@out На счет телодвижений, там очень много страниц нужно парсить, поэтому я 30 потоков запускаю. Хотел бы больше, но система тормозить начинает. Всего нужно пройти около 60 млн. ссылок. В 1 поток - это очень долго. Да и в 30 потоков тоже. Вся проблема в капчах. Я facebook паршу. Там капча сложная. Xevil ее раза с 10 угадывает только.
@out А куки просят капчу несколько дней :-) Задержка не поможет.
@Napulsnik said in Как привязать куки к потоку?:
Всего нужно пройти около 60 млн. ссылок.
тогда я надеюсь ты парсишь через get запросы без браузера )? Ибо с браузером это ... вечность.
Без браузера на запросах комп вместо 30 потоков 300 потянет. Тебе нужно брать любые паблики и не паблики прокси и парсить на них. При этом сделать устойчивую систему отсеивания плохих прокси, проверку на то, нормально ли прогрузилась страница (на гет запросе, это куда проще, чем браузер прогружать).. Короче, что я могу сказать.. не по правильному пути ты идешь для парсинга 60КК. Меняй путь, пока не поздно )
@out Да, нужно углубиться в изучение BAS. Я только пару дней назад о нем узнал :-)