sc0ut32
@sc0ut32

Не могу понять в чём ошибка?

Только начал изучать Python, начал с парсеров. Решил сделать проверку прокси, блокирует его целевой сайт или нет. И родил вот такой код:
import requests

url = 'https://ya.ru'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'}
proxy_list = {'https': '188.166.183.25:8080',
              'https': '188.166.217.2:8888',
              'https': '178.62.93.62:8118',
              'https': '46.101.87.81:8118',
              'https': '178.161.177.6:3130'}

for i in proxy_list.items():
    print(i) # для проверки
    if requests.get(url, proxies=i, headers=headers).status_code == 200:
        print(type(i)) # для проверки
    else:
        i = i + 1

Ошибка: AttributeError: 'tuple' object has no attribute 'get' , я понимаю что написано тут, но понять не могу. Толкните в нужную сторону пожалуйста. И меня интересует именно requests, хотел бы результата взял бы scrapy и т.п.
  • Вопрос задан
  • 2439 просмотров
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Параметр proxies ожидает аргументом получить словарь, а вы ему передаёте кортеж. Самый простой способ исправить ваш код:
if requests.get(url, proxies=dict([i]), headers=headers).status_code == 200:
Ответ написан
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Такой вариант еще сойдет:
j = 0
for i in proxy_list.items():
    proxy = {i[0]: i[1]}
    print(proxy) # для проверки
    if requests.get(url, proxies=proxy, headers=headers).status_code == 200:
        print(type(proxy)) # для проверки
    else:
        j += 1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы