Модуль request не соединяется через HTTPS прокси - Python
Формулировка задачи:
Стоит задача, разработать парсер некого сайта. При частых обращениях к сайту возможен бан.
Для исключения бана, обращение к сайту осуществляется через HTTPS прокси, с предварительным чеком на валид.
Проблема, не могу сообразить почему не работает:
Листинг программы
- import requests
- import time
- from bs4 import BeautifulSoup
- def proxy_check(proxy):
- try:
- target = 'https://xtool.ru/ip/'
- headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'}
- proxy = {"https" : "http://" + str(proxy),}
- r = requests.get(target, proxies = proxy, headers = headers, timeout=10)
- if(r.status_code('OK')):
- soup = BeautifulSoup(r.content, "html.parser")
- _data = soup.find_all("p", class_="vi")
- return _data
- else:
- return "BAD"
- except requests.exceptions.Timeout:
- time.sleep(.5)
- return 0
- #==========================================================================================================
- # Подготавливаем валидные прокси для парса
- proxyList = [] # Общий список прокси
- proxyFile = open('proxy.txt', 'r') #
- proxyGood = open('Proxy_GOOD_' + time.strftime('%Y-%m-%d_%H_%M_%S') + '.txt', 'a') # Валидный файл с прокси
- for line in proxyFile:
- print(proxy_check(line))
Решение задачи: «Модуль request не соединяется через HTTPS прокси»
textual
Листинг программы
- import requests
- import time
- from bs4 import BeautifulSoup
- def proxy_check(proxy):
- try:
- target = 'https://xtool.ru/ip/'
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'}
- proxy = {"https": proxy}
- r = requests.get(target, proxies=proxy, headers=headers, timeout=10)
- if r.status_code == 200:
- soup = BeautifulSoup(r.content, "html.parser")
- _data = soup.find_all("p", class_="vi")
- return _data
- else:
- return "BAD"
- except requests.exceptions.Timeout:
- time.sleep(.5)
- return 0
- print(proxy_check('94.177.254.191:1461'))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д