我正在尝试编写一个非常简单的网站爬虫程序来列出网址以及200、301、302和404 http状态码的推荐人和状态码。
结果发现Scrapy工作得很好,我的脚本正确地使用它来抓取网站,并且可以列出带有200和404个状态代码的url,没有问题。
问题是:我找不到如何让scrapy follow重定向并解析/输出它们。我可以找一个去工作,但不能两个都去。
到目前为止我所做的:
设置meta={'dont_redirect':True}
和设置REDIRECTS_ENABLED = False
添加301、302以处理“httpstatus”列表
更改重定向中间件文档中指定的设置
阅读重定向中间件代码以了解
以上各项的各种组合
其他随机资料
这里是public repo如果你想看看代码。
如果您想解析301和302响应,并同时跟踪它们,请请求回调处理301和302,并模仿重定向中间件的行为。
测试1(不工作)
让我们用一个简单的蜘蛛来举例说明(还没有按照您的意愿工作):
现在,蜘蛛请求两页,第二页应该重定向到http://www.example.com
302由
RedirectMiddleware
自动处理,不会传递给回调。测试2(仍然不完全正确)
让我们将spider配置为处理回调中的301和302,using ^{} :
让我们运行它:
这里,我们错过了重定向。
测试3(工作)
执行same as RedirectMiddleware但在蜘蛛回调中:
再运行蜘蛛:
我们被重定向到http://www.example.com并通过回调获得响应。
相关问题 更多 >
编程相关推荐