我正在尝试查询某些搜索结果的API。我首先得到我的搜索返回的结果数,然后产生的线程数等于我拥有的结果页数。但是,当页面数量增加时,我开始从urllib2获得不一致的HTTP错误401,即使我对我生成的所有URL使用相同的API密钥。每次都会在不同的URL上发生错误。首先,这是查询API以获取跨越多个页面(超过一千个)的信息的最佳方式。其次,为什么我会得到这个错误?
def worker(pageNum):
pageDetails = urllib2.urlopen(generateUrl(pageNum), timeout=1000).read()
pageDetails = json.loads(pageDetails)
#print pageDetails
print str(pageNum) + "\n"
return
def parallelRun(totalPages):
pageList = range(totalPages)
threads = []
for pageNum in pageList:
t = threading.Thread(target=worker, args=(pageNum,))
threads.append(t)
for thread in threads:
thread.start()
for thread in threads:
thread.join()
return
parallelRun(numPages)
答案 0 :(得分:0)
如果您将工作人员更改为以下内容:
def worker(pageNum):
try:
pageDetails = urllib2.urlopen(generateUrl(pageNum), timeout=1000).read()
pageDetails = json.loads(pageDetails)
#print pageDetails
print str(pageNum) + "\n"
return
except urlib2.HTTPError as err:
print err.reason
print err.read()
raise
您将获得有关出错的更多详细信息。