Лайфхаки

Маленькие, полезные хитрости

Парсинг с использованием

Человек, использующий настоящий браузер, почти никогда не станет запрашивать 20 веб-страниц в секунду из одного и того же веб-сайта. Поэтому если вы хотите запрашивать много веб-страниц из одного и того же веб-сайта, вам нужно заставить веб-сайт полагать, что все эти запросы отправляются из разных точек земного шара, то есть с использованием разных IP-адресов. Другими словами, вам нужно использовать прокси-серверы .

Прокси-сервер на python. Особенности взаимодействия прокси сервера с внешними серверами

Простой парсер прокси на питоне.. Настройка

Для успешной разработки парсинг-агента на прокси-сервере нужно установить Linux с такими инструментами:

TOR: распределенная, анонимная и зашифрованная сеть, в которой данные пользователей и сами пользователи никогда не будут раскрыты.Stem: контроллер Python для TOR.Privoxy: не кеширующий веб-прокси с фильтрацией, повышенной конфиденциальностью и возможностью изменения данных веб-страниц и заголовков HTTP.TOR (установка и настройка)

Установи TOR через терминал:

sudo apt-get update sudo apt-get install tor sudo /etc/init.d/tor restart

Далее:


Делаю парсер страниц на python. Нужно постоянно обходить большое ко-во страниц. Например, 1М в день.
Для этого раньше использовал многопоточность TheadPool. Но когда возросло кол-во требуемых одновременных подключений до 80-100 скрипт начинал падать по памяти.
Почитал, что пишут надо переходить на asyncio.
Накидал простенький скрипт, где беру прокси из файлика, беру url и обхожу их. Для ограничения одновременности испольщую semaphore.
Но столкнулся с тем, что если у меня для прокси доступно, например 50 потоков, то при выборке 200 урлов, первые 50 отработаются правильно, а остальные уйдут в ошибку. Такое ощущение, что семафор не работает или я как то не так использую это.

Человек, использующий браузер, вряд ли будет запрашивать с одного сайта 20 страниц в секунду. Поэтому, если вы собираетесь запрашивать с одного сайта большое количество страниц, то надо заставить сайт думать, что запросы идут от разных пользователей т.е. с разных IP адресов. Другими словами, вам необходимо использовать прокси .

Сегодня прокси стоят не очень дорого: ~ 1 доллар за IP. Однако, если вам нужно делать более чем 10 тысяч запросов в день на одном и том же веб-сайте, то затраты могут сильно вырасти, ведь вам потребуются сотни адресов. Следует учитывать, что IP-адреса прокси-серверов должны постоянно мониториться, чтобы отбросить тот, который выключился, и заменить его.