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