Python - 如何两次读取URL的内容?

时间:2017-08-22 16:01:38

标签: python python-3.x urllib

我使用'urllib.request.urlopen'来阅读HTML页面的内容。之后,我想将内容打印到我的本地文件,然后执行某项操作(例如,在该页面上构建一个解析器,例如BeautifulSoup)。

问题 在第一次读取内容(并将其写入文件)之后,我无法第二次阅读内容以便对其执行某些操作(例如,在其上构建解析器)。它只是空的,我无法将光标( seek(0))移回到开头。

import urllib.request   


response = urllib.request.urlopen("http://finance.yahoo.com")


file = open( "myTestFile.html", "w")
file.write( response.read()  )    # Tried responce.readlines(), but that did not help me
#Tried: response.seek()           but that did not work
print( response.read() )          # Actually, I want something done here... e.g. construct a parser:
                                  # BeautifulSoup(response).
                                  # Anyway this is an empty result 


file.close()

我该如何解决?

非常感谢!

1 个答案:

答案 0 :(得分:7)

您无法两次阅读回复。但您可以轻松地重复使用已保存的内容:

content = response.read()
file.write(content)
print(content)