Как повернуть прокси с помощью Python

#python #beautifulsoup #python-requests

#python #beautifulsoup #python-запросы

Вопрос:

Я экспериментирую с Python и пытаюсь создать простой Google Scraper. Для этого я пытаюсь реализовать прокси, но у меня недостаточно знаний.

Пока мой код выглядит так:

 import requests
from bs4 import BeautifulSoup as bs
import warnings
from googlesearch import search
from itertools import cycle

warnings.filterwarnings("ignore", module='bs4')

proxies = {
'http:myproxies_url'

}
proxy_pool = cycle(proxies)
proxy = next(proxy_pool)

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'X-Requested-With': 'XMLHttpRequest',
'Connection': 'keep-alive'}

def searchBing(query, num):

    urls = []

    for j in search(query, tld="co.in", num=10, stop=10, pause=3): 
            proxies = {
                "http": proxy,
                "https":proxy
            }
            urls.append(j) 


    return urls[:num]

def extractText(url):
    page = requests.get(url,proxies=proxies)
    soup = bs(page.text, 'html.parser')
    return soup.get_text()
  

Это ошибка в консоли:

 no_proxy = proxies.get('no_proxy') if proxies is not None else None
AttributeError: 'set' object has no attribute 'get'
  

Комментарии:

1. Пожалуйста, обновите код строкой, которая выдает ошибку, но из того, что я вижу, это то, что ваш proxies не dict , а set , отсюда и проблема.

Ответ №1:

proxies является набором,

 proxies = {
   'http:myproxies_url'
}
  

ошибка подсказывает мне, что он не устанавливается в словарь с помощью searchBing функции. Я бы рекомендовал обновить имена ваших переменных, чтобы этого не произошло.