繁体   English   中英

使用python的多线程GET请求:错误401

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM