Получение ошибки 404 на странице, которая была доступна

#python #web-scraping

Вопрос:

Я создал скребок для сбора данных о ценах с веб-сайта. Это работало как заклинание, пока в один прекрасный день не перестало работать.

 page = requests.get(url)   #url is the url of the page I am scraping
contents = page.content
soup = BeautifulSoup(contents, 'html.parser') 
#start parsing the page using BeautifulSoup
 

Теперь я получаю сообщение об ошибке http 404 при выполнении запроса.get(url). Я знаю, что страница там есть, потому что URL-адрес можно получить из браузера.

Я почти уверен, что была добавлена дополнительная безопасность, чтобы разрешить ограниченный доступ к URL-адресу. Есть ли способ обойти сообщение 404?

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

1. Посмотрите page.text и отладьте оттуда.

2. Вы можете поделиться URL-адресом страницы?

3. Вот URL страницы: финансы. yahoo.com/quote/NXPI/options?p=NXPIamp;date=1629417600

4. Page.text-это ответное сообщение 404 в формате html. <!— Не найдено на сервере —>

Ответ №1:

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

 import requests
from bs4 import BeautifulSoup as bs

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'}

url = "https://finance.yahoo.com/quote/NXPI/options?p=NXPIamp;date=1629417600amp;guccounter=1"

page = requests.get(url, headers=headers).text
soup = bs(page,'html.parser')
print(soup)