[英]Multi-threading GET requests with python: error 401
我正在尝试查询一些搜索结果的API。 我首先得到搜索返回的结果数,然后生成等于我具有的结果页数的线程数。 但是,当页面数变多时,即使我为生成的所有URL使用相同的API密钥,我也会从urllib2中获得不一致的HTTP错误401。 每次都会在不同的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)
如果将您的工作人员更改为以下内容:
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
您将获得有关发生问题的更多详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.