这也只是答案的一部分,我对 jimhark 提出的一种可能的解决方案做了一些自我介绍:
维基百科 API
我使用了这段代码,保存在query.py
:
import urllib2
import xml.etree.ElementTree as ET
import numpy as np
for i in np.arange(0,1000):
url = 'http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=Fish&prop=revisions&rvprop=content'
response = urllib2.urlopen(url)
html_string = response.read()
a = ET.fromstring(html_string)
try :
a.find('query').find('pages').find('page').find('revisions').find('rev').text
except (AttributeError):
pass
跑了python -m cProfile query.py
。
这不是很聪明的分析,因为很可能 Wikipeda api 会将查询缓存到fish
.
结果:
1431056 function calls (1412734 primitive calls) in 686.813 seconds
几乎所有的地方,因为:
ncalls tottime percall cumtime percall filename:lineno(function)
118081 644.566 0.005 644.566 0.005 {method 'recv' of '_socket.socket' objects}
我将尝试将其用于我的数据集并让您知道。