我正在嘗試使用從網路讀取一些資料,但遇到了一個意外問題。我稱之為意外,因為如果我列印我正在嘗試閱讀的網頁,它存在并且不會出現任何問題。但是,當我使用以下代碼(見下文)時,我收到所謂的錯誤“HTTP 錯誤 404:未找到現有 url”。但網址存在(見這里)...有誰知道我做錯了什么?謝謝!
import pandas as pd
from bs4 import BeautifulSoup
import urllib.request as ur
index = 'MSFT'
url_is = 'https://finance.yahoo.com/quote/' index '/financials?p=' index
# Readdata
read_data = ur.urlopen(url_is).read()
uj5u.com熱心網友回復:
某些站點需要有效的“用戶代理”識別符號標頭。在您使用 urllib 的示例中,由于 urlopen 的 URL 引數也可以是 Request 物件,您可以在 Request 物件中指定標頭以及 url,如下所示:
from urllib.request import Request, urlopen
index = 'MSFT'
url_is = 'https://finance.yahoo.com/quote/' index '/financials?p=' index
req = Request(url_is, headers={'User-Agent': 'Mozilla/5.0'})
html = urlopen(req).read()
uj5u.com熱心網友回復:
使用 requests 模塊并注入 User-Agent,回應狀態為 200,如下所示:
from bs4 import BeautifulSoup
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'}
index = 'MSFT'
url_is = 'https://finance.yahoo.com/quote/' index '/financials?p=' index
r = requests.get(url_is, headers=headers)
print(r.status_code)
#page = BeautifulSoup(r.content, 'lxml')
輸出:
200
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/349823.html
