我正在尝试向网页发出get请求,但我使用带有requests
包的Python2.7时出现了404错误。但是,使用CURL我得到一个成功的响应,它适用于浏览器。
的Python
r = requests.get('https://www.ynet.co.il/articles/07340L-446694800.html')
r.status_code
404
r.headers
{'backend-cache-control': '', 'Content-Length': '20661', 'WAI': '02',
'X-me': '08', 'vg_id': '1', 'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding',
'Last-Modified': 'Sun, 20 May 2018 01:20:04 GMT', 'Connection': 'keep-alive',
'V-TTL': '47413', 'Date': 'Sun, 20 May 2018 14:55:21 GMT', 'VX-Cache': 'HIT',
'Content-Type': 'text/html; charset=UTF-8', 'Accept-Ranges': 'bytes'}
r.reason
'Not Found'
CURL
curl https://www.ynet.co.il/articles/07340L-446694800.html
答案 0 :(得分:1)
代码是正确的,它适用于其他一些网站(请参阅https://repl.it/repls/MemorableUpbeatExams)。
此网站在浏览器中为我加载,因此我确认您的问题。
可能是他们阻止了Python请求,因为他们不希望他们的网站被机器人抓取和分析,但他们忘了阻止卷曲。
您正在做的事情可能违反www.ynet.co.il使用条款,您不应该这样做。
答案 1 :(得分:0)
在以下情况下显示404:
resp = requests.get(r'http://www.xx.xx.xx.xx/server/rest/line/125')
或
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
}
result = requests.get('https://www.transfermarkt.co.uk', headers=headers)