我正在使用BeautifulSoup在一个for循环内解析数千个网站。这是我的代码片段:
def parse_decision(link):
t1 = time.time()
decisionpage = urllib.urlopen(link)
t2 = time.time()
soup = BeautifulSoup(decisionpage.read(), 'lxml')
t3 = time.time()
# ...
# Parsing happens here and returns a pandas dataframe
由于代码运行时间太长,我开始调查原因,并发现BeautifulSoup读取决策页面所需的时间变化很大。以下是每个步骤完成所需的秒数片段:
Element | t2-t1 | t3-t2
1. | 0.073 | 60.023
2. | 0.096 | 0.005
3. | 0.096 | 60.016
4. | 0.064 | 0.006
正如你所看到的,大约每两个网站中就有一个需要花费60秒 的时间才能加载出来,尽管这些网站都是相同的格式并且包含着大致相同的信息。这些网站类似于以下这个法院判决的网页: http://www.nycourts.gov/reporter/3dseries/2003/2003_17749.htm 有没有人知道为什么会存在这样的性能差异,并且可能有什么方法可以克服它?非常感谢任何帮助。