Анонимный парсинг с помощью Tor
В этой заметке мы хотим показать основные преимущества и недостатки сети Tor, а также процесс настройки прокси в связке с python
Довольно часто при парсинге, отправляя большое количество запросов для получения информации с сайта, может возникнуть проблема, связанная с блокировкой доступа по IP адресу. Одним из решений данной проблемы будет использование сети Tor.
Главными преимуществами использования сети Tor в сравнении с обычными прокси являются:
- Сложность в определение внешнего IP адреса;
- Tor предоставляется бесплатно.
Главным же недостатком является медленная скорость соединения в сравнении с обычным интернетом, но для парсинга сайтов данный недостаток не является критичным, так как для передачи текстовой информации сети Tor вполне хватает.
Перейдем к описанию настройки данной программы. С официального сайта Tor следует скачать архив с бинарным приложением и положить его в удобную папку (для примера положим в папку C:\tor). В этой папке создадим файл с именем torrc со следующим содержанием:
После проделанных действий Tor настроен и можно его запускать. Открываем cmd, переходим в нашу папку, где хранится Tor, и набираем команду:
Далее покажем на простом примере, как получить информацию с сайта, используя python, направляя весь трафик через Tor:
То же самое, но на PHP:
$url = 'http://httpbin.org/ip';
$proxy = '127.0.0.1:9050';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
var_dump($curl_scraped_page);
Тот кто писал это, забыл что, многие сайты (google, yandex) банят соединения, сделанные с помощью tor. Так что, смысла в этой статье нет
писал парсеры под букмекеров - все было ок
1 Кмк нехорошо нагружать Тор, он для другого.
2 выходные узлы тора известны и их банят