Разделы · Парсеры и сбор данных
Пишу подробно, потому что вопрос всплывает у всех, кто работает с объёмами.
Ставил 200 потоков, потом снижал до 80, разница по времени невелика. Пробовал разбивать список на части по пятьдесят тысяч, стало ровнее. Логи ведутся, в них видно, что запросы уходят, а ответы приходят короткие.
Кто как это обходит?
Почти так, но одна деталь меняет вывод.
Большие каталоги не надо гонять одним куском. Разбейте на части по пятьдесят тысяч, каждую с отдельным состоянием, и падение одной части перестанет ронять весь прогон.
Хороший разбор, добавлю в закладки.
Какая версия программы и что с настройками по умолчанию?
Сколько адресов и какой темп при этом стоит?
Тут ничего нового не скажу, только подтвержу.
Память ест не число потоков, а хранение всего собранного в памяти до конца прогона. Пишите результат на диск пачками, и потолок пропадёт.
$ ./sbor --potokov 120 --spisok chast-01.txt --proksi pool.txt обработано: 48 210 / 50 000 пустых ответов: 1 842
Тут легко перепутать два разных момента.
Если данные отдаются скриптом, обычный сбор их не увидит. Смотрите, откуда страница берёт содержимое: часто рядом есть простой запрос, который отдаёт то же самое в удобном виде.
Поправлю: дело не в объёме, а в темпе.
Скорость упирается не в программу, а в темп, который держит площадка. Ставить 300 потоков на 20 адресов бессмысленно, отказы съедят весь выигрыш.
Потери записей чаще всего идут из-за коротких ответов, которые программа считает успешными. Заведите проверку на минимальный размер ответа и на наличие обязательного куска разметки.
$ ./sbor --potokov 120 --spisok chast-01.txt --proksi pool.txt обработано: 48 210 / 50 000 пустых ответов: 1 842
Начинал с того же, потом переделал.
Большие каталоги не надо гонять одним куском. Разбейте на части по пятьдесят тысяч, каждую с отдельным состоянием, и падение одной части перестанет ронять весь прогон.
Если данные отдаются скриптом, обычный сбор их не увидит. Смотрите, откуда страница берёт содержимое: часто рядом есть простой запрос, который отдаёт то же самое в удобном виде.
Пришёл к этому не сразу, сначала сделал ошибку.
Потери записей чаще всего идут из-за коротких ответов, которые программа считает успешными. Заведите проверку на минимальный размер ответа и на наличие обязательного куска разметки.
Разметка на маркетплейсах меняется регулярно. Держите разбор в одном месте, чтобы правка занимала минуту, а не полдня.
Если поможет, напишите здесь же, пригодится следующим.
Согласен с предыдущим ответом, но с одной оговоркой.
Если данные отдаются скриптом, обычный сбор их не увидит. Смотрите, откуда страница берёт содержимое: часто рядом есть простой запрос, который отдаёт то же самое в удобном виде.
Если поможет, напишите здесь же, пригодится следующим.
Держите запас, ровно по расчёту работать не выйдет.
Уменьшите потоки вдвое и замерьте заново.