Модуль request не соединяется через HTTPS прокси - Python

Узнай цену своей работы

Формулировка задачи:

Стоит задача, разработать парсер некого сайта. При частых обращениях к сайту возможен бан. Для исключения бана, обращение к сайту осуществляется через HTTPS прокси, с предварительным чеком на валид. Проблема, не могу сообразить почему не работает:
Листинг программы
  1. import requests
  2. import time
  3. from bs4 import BeautifulSoup
  4.  
  5. def proxy_check(proxy):
  6. try:
  7. target = 'https://xtool.ru/ip/'
  8. headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'}
  9. proxy = {"https" : "http://" + str(proxy),}
  10. r = requests.get(target, proxies = proxy, headers = headers, timeout=10)
  11. if(r.status_code('OK')):
  12. soup = BeautifulSoup(r.content, "html.parser")
  13. _data = soup.find_all("p", class_="vi")
  14. return _data
  15. else:
  16. return "BAD"
  17. except requests.exceptions.Timeout:
  18. time.sleep(.5)
  19. return 0
  20.  
  21. #==========================================================================================================
  22. # Подготавливаем валидные прокси для парса
  23. proxyList = [] # Общий список прокси
  24. proxyFile = open('proxy.txt', 'r') #
  25. proxyGood = open('Proxy_GOOD_' + time.strftime('%Y-%m-%d_%H_%M_%S') + '.txt', 'a') # Валидный файл с прокси
  26. for line in proxyFile:
  27. print(proxy_check(line))

Решение задачи: «Модуль request не соединяется через HTTPS прокси»

textual
Листинг программы
  1. import requests
  2. import time
  3.  
  4. from bs4 import BeautifulSoup
  5.  
  6.  
  7. def proxy_check(proxy):
  8.     try:
  9.         target = 'https://xtool.ru/ip/'
  10.         headers = {
  11.             'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'}
  12.         proxy = {"https": proxy}
  13.         r = requests.get(target, proxies=proxy, headers=headers, timeout=10)
  14.         if r.status_code == 200:
  15.             soup = BeautifulSoup(r.content, "html.parser")
  16.             _data = soup.find_all("p", class_="vi")
  17.             return _data
  18.         else:
  19.             return "BAD"
  20.     except requests.exceptions.Timeout:
  21.         time.sleep(.5)
  22.         return 0
  23.  
  24.  
  25. print(proxy_check('94.177.254.191:1461'))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут