gpt4 book ai didi

python-3.x - Python 3 Urlopen 与 Urlretreive

转载 作者:行者123 更新时间:2023-12-04 06:43:29 25 4
gpt4 key购买 nike

我正在编写一个脚本来下载和处理历史股票价格。
当我使用 urllib.request.urlopen 时,我在每个文件 (b'\xef\xbb\xbf) 中都有一个奇怪的文本前缀,当我使用 urllib.request.urlretrieve 时不存在,当我将 url 输入到浏览器(火狐)。
所以我有一个答案,但我不知道为什么它首先会导致问题。我怀疑这可能是因为我强制它是一个字符串,但我不知道为什么会这样或者我将如何解决这个问题(除了使用 urlretrieve 代替)。
代码如下。相关行是第 11 行。后面的注释代码是我使用 orlopen 时的代码。

    #download a bunch of historical stock quotes from google finance

import urllib.request
symbolarray = []
symbolfile = open("symbols.txt")
for line in symbolfile:
symbolarray.append(line.strip())
symbolfile.close()

for symbol in symbolarray:
page = urllib.request.urlretrieve("http://www.google.com/finance/historical?q=NYSE:"+symbol+"&output=csv",symbol+".csv")
#datafile = open(symbol+".csv","w")
#datafile.write(str(page.read()))
#datafile.close()

最佳答案

0xEF,0xBB,0xBF 是 BOM for utf-8 .它表示这是一个 utf-8 编码的字符串。我猜如果你使用wireshark,你会发现它一直在那里。只是大多数程序忽略了它。

而不是 str(page.read())你应该试试 page.read().decode('utf-8-sig')如果要删除 BOM。如果你想保留它,你可以只用 'utf-8' 解码。

关于python-3.x - Python 3 Urlopen 与 Urlretreive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3964747/

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