#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
функции. Я бы рекомендовал обновить имена ваших переменных, чтобы этого не произошло.