如何为每个尝试刮取的url捕获response.code?

2024-09-30 10:26:49 发布

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

我有一个很大的url列表需要抓取,在多次测试之后,我注意到在spider执行的输出中有一个results部分,显示了爬虫遇到的所有响应代码。但是当我运行包含这一行的代码时,所有的url返回的代码都是=200

urlStatusCode = response.status

在debug窗口中,分解是这样的,并且希望在我的文件中捕获相同的内容,这样我就可以很容易地识别哪些url需要去验证和调整代码(如果需要)

Response Count 200 = 2494
Response Count 301 = 122
Response Count 404 = 37

我知道他们都意味着什么,但我想捕捉这些实际的代码在我的CSV文件,这是创建与刮,以便我可以调查有问题的网址


Tags: 文件csv代码debugurl内容列表response
1条回答
网友
1楼 · 发布于 2024-09-30 10:26:49

我认为您不想捕获301响应代码。当Scrapy find a 301时,默认情况下,它会为重定向目标生成一个新请求(一个新的URL),并且回调只接收对最终URL的响应(在遵循所有重定向之后)

至于404响应,默认情况下它们永远不会到达您的回调。如果希望回拨收到这些响应,有两个选项:

  • 404添加到^{}设置中,这样404响应也会到达您的回调

  • Use an errback处理404响应

相关问题 更多 >

    热门问题