Лайфхаки

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

Подключения по прокси


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

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

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

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

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

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

Далее:

Выбор подхода к созданию и управлению пулом может быть головной болью. В этом разделе мы опишем некоторые вопросы, которые вам нужно задать себе при выборе наилучшего прокси-решения для ваших задач:

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

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

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

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

Ещё один вопрос, который стоит обсудить — какие прокси использовать: публичные, общие или выделенные?

Прежде чем говорить о прокси-серверах, нам сначала необходимо понять, что такое IP-адреса и как они работают (очень коротко). IP-адрес — это набор чисел, который присваивается любому устройству, подключенному к Internet Protocol, например, к интернету, что дает каждому устройству уникальный идентификатор. Большинство IP-адресов выглядят так:

207.148.1.212

Какие бывают прокси. Что такое прокси, зачем нужны прокси и какие бывают виды?