為什么此函式無法從“https://www.seattletimes.com/feed/”讀取 XML?
我可以從我的瀏覽器訪問 URL就好了。它還可以毫無問題地從其他網站讀取 XML (“https://news.ycombinator.com/rss”)。
import urllib
def get_url(u):
header = {'User-Agent': 'Mozilla/5.0'}
request = urllib.request.Request(url=url, headers=header)
response = urllib.request.urlopen(request)
return response.read().decode('utf-8')
url = 'https://www.seattletimes.com/feed/'
feed = get_url(url)
print(feed)
程式每次都超時。
想法?:
- 也許
header需要更多資訊(Accept等)?
編輯1:
我header用我的瀏覽器標頭替換了腳本中的請求。還是不行。
header = {
'Accept': 'text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'en-US,en;q=0.9',
'Connection': 'keep-alive',
'Accept-Language': 'en-US,en;q=0.9',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36' }
uj5u.com熱心網友回復:
我不太確定為什么,但header/user-agent使網站混亂。如果您洗掉它,您的代碼就可以正常作業。我已經嘗試了不同的標題引數沒有問題,這user-agent似乎是導致這種行為的原因。
import urllib.request
def get_url(u):
request = urllib.request.Request(url=url)
response = urllib.request.urlopen(request)
return response.read().decode('utf-8')
url = 'https://www.seattletimes.com/feed/'
feed = get_url(url)
print(feed)
經過一些除錯后,我找到了一個合法的標頭組合(請記住,我認為這是他們的一個錯誤):
header = {
'User-Agent': 'Mozilla/5.0',
'Cookie': 'PHPSESSID=kfdkdofsdj99g36l443862qeq2',
'Accept-Language': "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/388051.html
下一篇:為什么損失減少而準確度沒有?火炬
