我正在测试下面的代码,我发现输出后的“print”与文本文件不一致。我已将编码设置为“UTF-8”。这是虫子吗?如何修复?你知道吗
import requests
url = "http://www.aastocks.com/tc/stocks/analysis/company-fundamental/financial-ratios?symbol=0001&period=4"
r = requests.get(url)
print r.content
f = open("test.txt","w")
f.write(r.content)
运行控制台缓冲区可以容纳的行数有一个内部限制。它被限制在大约15K行。你知道吗
要增加这个限制,您必须更改
idea.properties
文件并添加一个键idea.cycle.buffer.size
并相应地调整它。你知道吗参见this bug report,其中详细介绍了解决方案。你知道吗
虽然我不知道您正在使用的python的确切版本,但我冒昧地猜测它不是3.x,因为它使用了print语句。你知道吗
问题不在于打印语句本身,而是,显示这样长的行(这一行是175765长)常常是一个重要的问题。Python(尤其是在windows上)在处理几kB(本例中为176KB)长的行时开始变得喜怒无常。与其尝试在一条语句中显示整个字符串,不如尝试将其分解为多个部分,然后显示。您将看到在屏幕上显示的r.content与通过f.write存储的内容之间没有区别。你知道吗
只需确认,您可以在输入代码后执行以下操作:
您将注意到,这与上一个print语句所显示的内容没有区别。你知道吗
我曾在python3.4.x和linux上尝试过这种方法,但是在python和平台的结合中没有观察到您提到的行为。你知道吗
编辑1
这就是我尝试过的:
下面是输出: http://pastebin.com/R0j0mYe5
编辑2
我没注意到头球被砍了。我在2.x中试过,看到了它的行为。这似乎确实是个问题。显然,在扫描html和解码ot打印时会出现一些问题。地址:
我看到的是:
给出和操作如下:
我们可以看到,当只打印前500行时,op与预期的一样,但是当我们尝试更多时会出现错误。你知道吗
当它试图解码整个文档时,发生了一些奇怪的事情。你知道吗
但是,在Python3.4.x中我看到:
输出:
但是如果我尝试解码utf-8,输出在3.x中是类似的(比如2.x):
操作:
相关问题 更多 >
编程相关推荐