LINUX.ORG.RU

proxychains + python скрипт выдаёт timeout

 , ,


1

1

Пытаюсь написать парсер одного сайтика через тор используя скрипт на питоне + proxychains.

Для примера погуглил простенькое что-то, вот такой банальный скрипт:

import time

from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.firefox.webdriver import WebDriver

geckodriver_path = '/opt/geckodriver'
service = FirefoxService(executable_path=geckodriver_path)

options = FirefoxOptions()
options.add_argument("--headless")

driver: WebDriver = webdriver.Firefox(service=service, options=options)

try:
    driver.get("https://nic.ru")
    print(driver.page_source)
    time.sleep(5)
except Exception as e:
    print(f"An error occurred: {e}")
finally:
    driver.quit()

/etc/proxychains.conf

# proxy_dns 
[ProxyList]
socks5  127.0.0.1 9150

/usr/lib/proxychains3/proxyresolv

DNS_SERVER=${PROXYRESOLV_DNS:-8.8.8.8}

Запускаю тор-броузер. Далее запускаю:

proxychains pyrhon3 parser.py

и на выводе получаю типа вот такой херни:

|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout
|D-chain|-<>-127.0.0.1:9150-<><>-127.0.0.1:34635-<--timeout

p.s. К слову если запущу proxychains firefox - то всё работает в firefox

★★

Кажется понял, проблема в selenium, так как через библиотеку requests всё работает

import requests
from bs4 import BeautifulSoup

url = 'https://api.ipify.org/'

r = requests.get(url,headers={"User-Agent":"Mozilla/5.0"})
soup = BeautifulSoup(r.text,"html.parser")

print(soup)
devorg ★★
() автор топика

попробуй прочитать что за «хрень» ты получаешь «на выводе», если разберешься - сразу станет понятнее что происходит и почему не работает

для полного понимания проблемы останется ещё узнать как работает selenium

и это конечно клево, в 2025 использовать proxychains, но если ты пользуешься браузером - то почему просто в настройках драйвера прокси не указать? proxychains же нужен чтобы произвольные tcp коннекты в CONNECT заворачивать, а браузер и нативно в прокси умеет

ei-grad ★★★★★
()
Ответ на: комментарий от ei-grad

Ну я понял, selenium через localhost как я понял коннектится а он через proxychains идёт и замкнутый круг

я просто с сетями на вы

devorg ★★
() автор топика
Последнее исправление: devorg (всего исправлений: 1)
Ответ на: комментарий от ei-grad

Чтобы смотреть Youtube с автопереводом голоса на русский (не субтитры, а именно замена голоса).

Сам Youtube с некоторых пор тоже научился переводить глос, но он пессимизирует русский язык. В куче роликов есть переводы на ~10 языков, и русского среди них нет. А у Яндекса есть.

Xintrea ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.