Web Scraping - запрашивает ConnectionError: ('Соединение прервано.', OSError ("(60, 'ETIMEDOUT')",)) - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь получить доступ к веб-странице. Я попытался 'UserAgent' добавить заголовки, однако получил ошибку тайм-аута: мои новые коды:

from fake_useragent import UserAgent
import requests

url = "https://www.bestbuy.com/site/lg-65-class-oled-b9-series-2160p-smart-4k-uhd-tv-with-hdr/6360611.p?skuId=6360611"
ua = UserAgent()
print(ua.chrome)
header = {'User-Agent':str(ua.chrome)}
print(header)
url_get = requests.get(url, headers=header)
print(url_get)    

-> 285 повышение SocketError (str (e)) 286 за исключением OpenSSL.SSL.ZeroReturnError как e:

OSError: (60, 'ETIMEDOUT')

Во время обработки вышеуказанного исключения произошло еще одно исключение:

ProtocolError Traceback (последний вызов был последним) /anaconda3/lib/python3.6/site-packages/requests/adapters.py при отправке (self, request, stream, timeout, verify, cert, proxy) 439 retries = self.max_retries,-> 440 timeout = timeout 441)

-> 285 повысить SocketError (str (e)) 286 за исключением OpenSSL.SSL.ZeroReturnError как e:

ProtocolError: ('Соединение прервано. ', OSError ("(60,' ETIMEDOUT ')",))

Во время обработки вышеуказанного исключения произошло другое исключение:

1 Ответ

0 голосов
/ 03 ноября 2019

Вам не нужно использовать fake_useragent, просто попробуйте что-то вроде этого ... передать переменную cookie агента на запрос

import requests

url = "https://www.bestbuy.com/site/lg-65-class-oled-b9-series-2160p-smart-4k-uhd-tv-with-hdr/6360611.p?skuId=6360611"
agent = {"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}
cookies = {"cookie":"COPY_HERE_YOUR_COOKIE_FROM_BROWSER"}
url_get = requests.get(url,headers=agent, cookies=cookies)
print(url_get.text)

Если вы не знаете, как получить куки, просто нажмите прямо в браузере (Chromeпример) -> Inspect> Network ... и при загрузке сети посмотри первый запрос и посмотри заголовки. Этот код работает для меня.

...