putPageResToQueue(urlIter,queue):   函数负责获取网页内容的响应(HTTPResponse)并将其放入multiprocessing.Queue(代码中为pageQueue)中,函数输入为一个包含网页url的序列和一个queue

getPageResFromQueue(queue):   函数想实现从putPageResToQueue(urlIter,queue)函数写入的queue中读取其中的元素

*****问题是函数getPageResFromQueue(queue)一直读取不到pageQueue中的元素, print(queue.qsize())打印队列长度,其值不为0的时候print(queue.empty())打印为真,这块一直搞不明白。

请教有经验的前辈们帮忙给看看是什么原因??或者是代码流程哪里存在问题????

代码如下:

1 收藏


直接登录
最新评论
  • tberg   06/18

      for url in urlIter:

        print(‘url:’,url)
        postHeader = {‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36’}
        req = urllib.request.Request(url,headers=postHeader)
        page = urllib.request.urlopen(req)
        print(‘put’,url,‘response to queue’)
        queue.put(page)
        #加一个sleep(0)释放一下锁
      sleep(0)