【问题标题】:Can't retrieve html content of a webpage with Python requests无法使用 Python 请求检索网页的 html 内容
【发布时间】:2023-12-29 06:13:02
【问题描述】:

试图从网站 www.arrow.com 获取内容,但我的程序冻结了。我根本无法检索任何响应。

我用过 curl、wget 和同样的问题。我明白了:

<head><title>Document Moved</title></head>
<body><h1>Object Moved</h1>This document may be found <a HREF="https://www.arrow.com/en/products/search/">here</a></body>

我确实使用 POSTMAN 获得了响应,我意识到响应是用 gzip 编码的。在网站上,很多人建议添加一些标题来解决这个问题,但我到目前为止还没有成功。

import requests
url = 'http://www.arrow.com/en/products/search/'
params = {'q': 'ISOW7841FDWER'}
headers = {
        'Accept-Encoding': "gzip,x-gzip,deflate,sdch,compress",
        'Accept-Content': 'gzip',
        'HTTP-Connection': 'keep-alive',
        'Accept-Language': "en-US,en;q=0.8",
    }
r = requests.get(url, params=params, headers=headers)
print(r.url)
print(r.text)

【问题讨论】:

    标签: curl python-requests wget


    【解决方案1】:

    您不需要在headers 中包含所有这些项目,但您确实需要欺骗 User-Agent,否则网站将不会响应。

    import requests
    
    url = 'https://www.arrow.com/en/products/search'
    params = {'q': 'ISOW7841FDWER'}
    headers = {'User-Agent': 'Mozilla/5'}
    r = requests.get(url, params=params, headers=headers)
    print(r.url)
    print(r.text)
    

    【讨论】:

      最近更新 更多