我需要从网站收集一些数据,实际上它是一些文本供进一步分析。由于我不是网络报废的专家,我做了第一步,获取我需要的文件的网址。问题是,有时我可以获取文档,但有时我会得到连接超时错误。所以我想要一种尝试方式,直到我能得到网站回复,这就是我所拥有的:
from html2text import *
import urllib2
import html2text
from bs4 import BeautifulSoup
id = 1
with open("urls.txt") as f:
for url in f:
print url
html = urllib2.urlopen(url).read()
soup = BeautifulSoup(html, "html.parser")
with codecs.open("documentos/" + str(id) + ".txt", "w", "utf-8-sig") as temp:
temp.write(soup.get_text())
id += 1
其中urls.txt包含所需的网址,例如网址:
我怎样才能做到这一点?如果我只需要10个文件,我可以处理它,但我需要超过500个...所以我不能手动完成。
总结:
有时候我可以获取文件,有时我不能因为超时,我希望python尝试直到它能获得文件......
答案 0 :(得分:1)
您需要更好地构建函数以获取网站信息。完成该功能后,您可以使用retry decorator。
答案 1 :(得分:0)
您可以使用urllib2.urlopen()
超时参数,如下所示:Handling urllib2's timeout? - Python,
和一个重试装饰。