Python网络爬虫请求调用

时间:2015-07-19 22:01:18

标签: python web-crawler python-requests

我目前正在尝试构建一个多处理python爬虫。我的问题是请求呼叫以某种方式卡住(爬行2-3k页后)。我无法复制原因。

在下面找到http连接的函数(作为我的类的一部分)。如果有人有这个想法,这将是伟大的。

 def getPage(self, url):
    if url[url.find("://")+3:] not in self.visited:
        try:
            with closing(self.session.get(url=url, timeout=3.0, stream=True)) as r:
                if r.headers['content-type'].find('text/html') == -1:
                    #print("HEAD FAILED :'%s' -- %s" % (url, os.getpid()))
                    r.close()
                else:
                    timeout = 3
                    startTime = time.time()
                    body = []
                    for line in r.iter_lines(chunk_size=512, decode_unicode=None, delimiter=None):
                        body.append(line)
                        if time.time() > (startTime + timeout):
                            #print("Content too Long URL: 's%'" % (url))
                            r.close()
                            return False
                    content = b''.join(body)
                    #print("GET OK '%s'" % (url))
                    return [content, r.status_code, r.headers, r.elapsed]
        except:
            pass
    return False

我已经使用HTTPScoop检查了我的http连接。 有时连接会永远接收数据。

0 个答案:

没有答案