Разделы · Парсеры и сбор данных
До вчерашнего дня всё шло ровно, потом началось.
Опишу как есть.
Пробовал разбивать список на части по пятьдесят тысяч, стало ровнее. Три машины, на каждой своя часть списка. Логи ведутся, в них видно, что запросы уходят, а ответы приходят короткие.
Готов сам проверить, скажите только что.
У нас это вылезло на проекте с большим каталогом.
Сборщик, который умеет продолжить с места обрыва, стоит вдвое дороже по времени разработки и вдесятеро дешевле в работе.
Если программа ест память, дело почти всегда в накоплении результата. Настройте запись на диск пачками, и потолок исчезнет.
$ ./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
Ловил это дважды, оба раза по разным причинам.
Скорость упирается в темп, который держит площадка, программа тут ни при чём. Ставить 300 потоков на 20 адресов бессмысленно, отказы съедят весь выигрыш.
У нас это вылезло на проекте с большим каталогом.
Если программа ест память, дело почти всегда в накоплении результата. Настройте запись на диск пачками, и потолок исчезнет.
Не гоняйте один список сразу на всех машинах. Разбейте его заранее, иначе получите дубли и потери на стыках.
$ ./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
Забрал себе в заметки.
Ловил это дважды, оба раза по разным причинам.
Сборщик, который умеет продолжить с места обрыва, стоит вдвое дороже по времени разработки и вдесятеро дешевле в работе.
Набор новых участников сейчас приостановлен. Читать форум можно без учётной записи, все темы открыты.
Когда набор откроют, объявление появится в разделе с короткими вопросами.
Форма работает в браузере и никуда ничего не отправляет.