Добрый день, я столкнулся с такой проблемой, что при использовании прокси в requests подключение производится не через тот proxy который я подал, а через мой статический ip.
win-10
python 3.11.1
requests 2.28.2
Кусок кода который я использую для проверки прокси
функция get_html_req
storage
win-10
python 3.11.1
requests 2.28.2
Кусок кода который я использую для проверки прокси
Python:
from src.Modules import setup_logger, get_html_req, storage
from concurrent.futures import ThreadPoolExecutor
logger = setup_logger("checking_proxy")
def handler(proxy: str, protocol: str):
proxies = {protocol: f'{protocol+"s" if protocol == "http" else protocol}://{proxy}'}
try:
response = get_html_req(f_proxy=True, proxies=proxies)
storage.proxy[protocol].append(proxy)
print(response)
logger.info(f"God - {protocol} - {proxy}")
except Exception:
logger.debug(f"Bad - {protocol} - {proxy}")
def run_check_proxy():
logger.info("Start check proxy...")
for protocol in storage.bad_proxy:
for proxy in storage.bad_proxy[protocol]:
with ThreadPoolExecutor(storage.workers) as executor:
futures = []
futures.append(executor.submit(handler, proxy, protocol))
функция get_html_req
Python:
from .storage import storage
from bs4 import BeautifulSoup
from typing import Optional
import requests
def get_html_req(f_proxy: bool, url: Optional[str] = None, proxies = None) -> str:
if f_proxy:
return requests.get(url=storage.url_check, timeout=storage.timeout, proxies=proxies).text
else:
if url == None:
print('url not specified')
exit()
return requests.get(url=url, headers=storage.headers, timeout=storage.timeout).text
storage
Python:
from dataclasses import dataclass
from fake_useragent import UserAgent
@dataclass
class storage:
# for parse
headers = {"user-agent": UserAgent()["chrome"]}
timeout = 3
proxy_time_update = 600
# for proxy
url_check = "https://ipinfo.io/json"
bad_proxy = {"http": [], "https": [], "socks4": [], "socks5": []}
proxy = {"http": [], "https": [], "socks4": [], "socks5": []}
# Settings
workers = 70
Последнее редактирование: