我正在使用 grequests 爬取这个网站(速度很慢),在最初的几百个请求中,我得到的主要是 200 个 HTTP 响应,但在某个时刻,我得到的只是 None 响应(没有任何引发的异常)。
最奇怪的部分是,如果我在第一次爬网仍在运行并获得 None 响应时再次尝试运行爬网,则第二次爬网收到 200 个响应。
顺便说一句,我很确定我正在抓取的网站没有任何类型的抓取保护。
这是我的代码:
for x in range(0, len(urls), JUMP):
rs = (grequests.get(u, stream=False, headers = headers,
timeout = 300) for u in urls[x:x+JUMP])
responses += grequests.map(rs,exception_handler=nones_exception_handler)
# saves the failed requests so i can try those again later
def nones_exception_handler(request, exception):
nonlocal exceptionurls
print(exception)
exceptionurls.append(request.url)