Разделы · Парсеры и сбор данных
Пробовал три варианта, ни один не устроил до конца.
Начну с цифр, они тут важнее слов.
Прогон рассчитан на восемь часов, встаёт примерно на середине. Каталог на 400 тысяч адресов, память на машине 32 гигабайта.
$ ./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 адресов бессмысленно, отказы съедят весь выигрыш.
Почти так, но одна деталь меняет вывод.
Разметка на маркетплейсах меняется регулярно. Держите разбор в одном месте, чтобы правка занимала минуту, а не полдня.
Если поможет, напишите здесь же, пригодится следующим.
Долго держал старую схему, пока не упёрся.
Память ест не число потоков, а хранение всего собранного в памяти до конца прогона. Пишите результат на диск пачками, и потолок пропадёт.
Начните с малого объёма и растите постепенно.
Уменьшите потоки вдвое и замерьте заново.
Смотрите подсети, а не только число адресов.
Расскажу, чем закончилось у меня.
Разметка на маркетплейсах меняется регулярно. Держите разбор в одном месте, чтобы правка занимала минуту, а не полдня.
Держите нас в курсе.
На другой машине воспроизводится?
Какая версия программы и что с настройками по умолчанию?
Держите запас, ровно по расчёту работать не выйдет.
Считайте по темпу, всё остальное вторично.
Считаю так же, и цифры у меня близкие.
Потери записей чаще всего идут из-за коротких ответов, которые программа считает успешными. Заведите проверку на минимальный размер ответа и на наличие обязательного куска разметки.
Память ест не число потоков, а хранение всего собранного в памяти до конца прогона. Пишите результат на диск пачками, и потолок пропадёт.
У меня картина совпадает почти полностью.
Перед большим прогоном всегда гоняю пробу на тысяче адресов. Три минуты времени, и сразу видно, где посыплется.
Большие каталоги не надо гонять одним куском. Разбейте на части по пятьдесят тысяч, каждую с отдельным состоянием, и падение одной части перестанет ронять весь прогон.
Тут есть тонкость, о которой обычно забывают.
Память ест не число потоков, а хранение всего собранного в памяти до конца прогона. Пишите результат на диск пачками, и потолок пропадёт.
Если данные отдаются скриптом, обычный сбор их не увидит. Смотрите, откуда страница берёт содержимое: часто рядом есть простой запрос, который отдаёт то же самое в удобном виде.
Держите нас в курсе.