@d0dge

Как обойти блокировку по ip (через requests + tor)?

Добрый день!

Необходимо спарсить кое-какие данные, сайт упирается и банит по ip. Надыбал вот такую вот статью про парсинг при помощи Тора.
https://habr.com/ru/company/ods/blog/346632/
Но есть неработающие моменты из пунктов "2.2 Тор — сын Одина" и "2.3 Путь первый" этой статьи.
def get_html(x):
    UserAgent().firefox
    socks.set_default_proxy(socks.SOCKS5, "localhost", 9150)
    socket.socket = socks.socksocket
    ip = requests.get(x, headers={'User-Agent': UserAgent().firefox})
    soup = BeautifulSoup(ip, 'html.parser')
    temp = soup.find(attrs={'class': 'datatable dt-outline dt-bordered dt-striped'})
    print(temp)

В чем суть. Через библиотеку socket я менял ip и брал его из-под Тора. И все работает, ip действительно меняется. Но сайт, который я парсю почему-то, что-то видит и не дает зайти на него без капчки, если я вот таким образом пытаюсь сделать к нему запрос.
При этом, в самом браузере Тор я захожу на сайт без проблем.
И также если я уберу строку про сокет, вот так:
def get_html(x):
    UserAgent().firefox
    # socks.set_default_proxy(socks.SOCKS5, "localhost", 9150)
    # socket.socket = socks.socksocket
    ip = requests.get(x, headers={'User-Agent': UserAgent().firefox})
    soup = BeautifulSoup(ip, 'html.parser')
    temp = soup.find(attrs={'class': 'datatable dt-outline dt-bordered dt-striped'})
    print(temp)

То тогда гет запрос тоже делается нормально и все парсится, но вот только уже из под моего реального ip.
  • Вопрос задан
  • 300 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы