gpt4 book ai didi

python - requests - Python 命令行行为不同于运行脚本时的行为

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:20 28 4
gpt4 key购买 nike

我正在尝试编写一个脚本,将我提供的数据输入到我提供的 url 上的网络表单中。

首先,我通过获取页​​面的 html 并将其输出为文本文件来对其进行测试。 (我使用的是 Windows,因此是 .txt。)

import sys
import requests

sys.stdout = open('html.txt', 'a')

content = requests.get('http://www.york.ac.uk/teaching/cws/wws/webpage1.html')

content.text

当我在 python 命令行 (>>>) 上执行此操作(即最后两行)时,我得到了我期望的结果。当我在此脚本中执行此操作并从普通命令行运行它时,生成的 html.txt 为空白。如果我添加 print(content),则 html.txt 仅包含:

谁能解释一下这是怎么回事?另外,正如您可能会说的那样,我是初学者,我一辈子都找不到解释如何使用请求(或 urllib[2] 或 selenium 或其他)发送数据的初学者级教程到网页并检索结果。谢谢!

最佳答案

你想要:

import sys
import requests

result = requests.get('http://www.york.ac.uk/teaching/cws/wws/webpage1.html')
if result.status_code == requests.codes.ok:
with open('html.txt', 'a') as sys.stdout:
print result.content

请求返回一个 request.Response 类型的实例.当您尝试打印时,__repr__方法被调用,看起来像这样:

def __repr__(self):
return '<Response [%s]>' % (self.status_code)

这就是 <Response [200]> 的位置来自。

requests.Reponse有一个 content属性是 str 的一个实例(或 bytes 对于 Python 3)包含您的 HTML。

text属性类型为 unicode这可能是也可能不是你想要的。你在评论中提到你看到了 UnicodeDecodeError当您尝试将其写入文件时。我能够替换 print result.content上面有 print result.text我没有收到那个错误。

如果您需要帮助解决您的 unicode问题,我建议阅读此 unicode presentation .它解释了为什么以及何时解码和编码 unicode .

关于python - requests - Python 命令行行为不同于运行脚本时的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36944487/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com