#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)