Мультипоточный парсер [закрыт]

85
08 октября 2021, 11:50
Закрыт. Данный вопрос необходимо конкретизировать. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.

Закрыт 1 год назад.

Улучшить вопрос

Как это обычно бывает. Есть магазины-поставщики, есть дилеры. И эти магазины-поставщики не могут дать никаких выгрузок, тем более актуальных. Единственный путь синхронизировать наличие товаров - парсить. Но когда количество товаров около 500 тысяч штук, то простой php-curl сдаётся. Может занять больше суток.
Поэтому, необходимо проходить по ссылкам многопоточно, ну и с прокси серверами, чтобы какой-нибудь cloudflare не заблокировал.

Есть ли какие-нибудь хорошие инструменты для такого парсинга. Интересует какая-то обёртка для упрощенной работы с многопоточностью и прокси серверами. Чтобы можно было ввести сколько один прокси сервер должен делать запросов в минуту, чтобы на вход пул урл только принимал и сам распределял их по потокам и т.д. Язык желательно один из: Python, PHP, GoLang. Может кто-то знает хороший инструмент?

UPDATE:

Оказывается php-curl-class не плохо справляется с задачей.Но всё равно, может, кто-то еще что-то знает.
https://github.com/php-curl-class/php-curl-class/blob/master/examples/multi_curl_proxies.php

Answer 1

наверное, если нет АПИ и есть вероятность блокировки, то поставщик не сильно хочет, чтобы его продавали. во-вторых, не совсем понятна необходимость мультипоточности, если говорится, что парсинг может занять сутки. при таких сроках загрузка данных актуальна только роботами по расписанию, а не по запросу пользователя. а в случае с роботами, можно просто запускать их одновременно. причём если вынести исполнительные скрипты на разные сервера, то получится внутреннее распараллеливание. что в принципе реализуется и на php.

но если всё же требуется распараллеливание по запросу пользователя, то я бы посмотрел в сторону Node.js, как разделение непосредственно задачи на потоки, а ими уже бы запускал те же php-скрипты, потому что сам js не слишком приспособлен для программирования

Answer 2

если возможен python, то можно взять его multiprocessing и в несколько процессов запустить selenium

для проксирования можно натравить selenium на tor browser

у самого php с многопоточностью всё довольно печально

READ ALSO
Не могу поймать исключение

Не могу поймать исключение

Всем привет, никак не получается создать условие ,чтобы отловить ошибку ввода в строку букв вместо цифр

87
О взаимосвязи hashCode() и equals(). Правильно ли я ее понимаю?

О взаимосвязи hashCode() и equals(). Правильно ли я ее понимаю?

hashCode возвращает целочисленное int, которое характеризует объектГрубо говоря, если у объекта есть два целочисленных поля, то мы должны как-то...

98
Изменение цвета иконки в Toolbar

Изменение цвета иконки в Toolbar

Есть Activity и несколько Fragment которые открываются внутри этого активитиToolbar находится в активити

109
java.io.StreamCorruptedException: invalid stream header: AC3F0005

java.io.StreamCorruptedException: invalid stream header: AC3F0005

я сериализую объект KeyEvent, превращаю его в строку, а затем сохраняю это значение в бд Oracle, затем читаю строку из бд и пытаюсь десериализовать...

104