python 的request 怎么搞

为什么我这个返回是空,状态码是200,正常返回是一个html 代码

img

img

img

输出一下状态码,该网站并不能请求到

img

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7657754
  • 这篇博客你也可以参考下:python request 返回html 里的汉字乱码
  • 除此之外, 这篇博客: python requests【2】高阶中的 3. 爬取html分析标签 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 您还可以看一下 阿尔法老师的Python爬虫开发入门课程中的 第十五讲:requests-html的使用小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案:

    根据参考资料中的段落1中的代码,可以尝试使用以下步骤进行调试:

    1. 首先检查请求的链接是否正确,确认链接是否能够直接在浏览器访问到对应的网页。

    2. 检查请求头是否正确设置。可以尝试使用浏览器中的开发者工具,查看原网页的请求头信息,并将其复制到代码中。

    3. 检查网络连接是否正常。可以尝试在浏览器中访问其他网页,或者在命令行中使用 ping 命令测试网络连接。

    4. 尝试设置 User-Agent,有些网站会根据 User-Agent 来判断请求是否来自爬虫。

    5. 尝试使用超时参数,设置连接超时时间和读取超时时间。

    6. 尝试设置代理服务器,如果网络环境有特殊要求或者对访问频率有限制的话,需要使用代理。可以尝试使用免费代理,但需要注意代理的稳定性和安全性。

    下面为使用 Request 库发送请求的示例代码:

    import requests
    
    url = 'https://www.example.com'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.40'
    }
    timeout = 30
    
    try:
        response = requests.get(url, headers=headers, timeout=timeout)
        response.raise_for_status()  # 如果请求失败,抛出异常
        print(response.text)
    except Exception as e:
        print('请求失败:', e)
    

    其中,headers 参数为请求头信息,timeout 参数为请求超时时间(单位为秒)。若请求成功,则将返回的 HTML 代码打印出来。若请求失败,则打印出错误信息。