url open возвращает ошибки на некоторых веб-сайтах, а не на других

#python #python-3.x #beautifulsoup #python-requests

#python #python-3.x #beautifulsoup #python-запросы

Вопрос:

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

 from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
page_url = "https://www.basspro.com/shop/en"
uClient = uReq(page_url)
  

Это возвращает целую кучу ошибок, включая «return opener.open(url, данные, тайм-аут)»

Но когда я меняю URL на что-то вроде page_url = "https://store.google.com/" , это работает нормально.

Кто-нибудь может помочь мне понять, что происходит?

Ответ №1:

Вам нужно отправить соответствующие заголовки вместе с запросом. Отправьте User-Agent.

 import requests

page_url = "https://www.basspro.com/shop/en"

headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'}

res = requests.get(page_url, headers=headers)

print(res.status_code)
  

Вывод:

 200