用python处理GET请求:错误401

2024-04-25 05:11:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图查询一些搜索结果的API。我首先得到搜索返回的结果数,然后生成与我的结果页数相等的线程数。但是,当页数增加时,我开始从urllib2得到不一致的HTTP错误401,即使我对生成的所有url使用相同的API键。每次错误都发生在不同的url上。首先,这是查询跨越多个页面(超过一千个页面)的信息的最佳方式吗。第二,为什么我会有窃听器?你知道吗

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)

Tags: inapiurlfordef错误页面urllib2
1条回答
网友
1楼 · 发布于 2024-04-25 05:11:05

如果你把你的工人换成这样:

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

你会得到更详细的错误信息。你知道吗

相关问题 更多 >