
最近在爬一个网站,明显有反爬虫机制, 50 个 request 之后就变 500 internal error 。不换 ip 的话 4 , 5 天都不能访问了。参考教程用了 tor+polipo ,情况好了点但依旧有 10%的 500 。我有试 errback 调用方法,但 errback 没有被触发。用什么方法能捕捉到 500 错误,并且在调用我的方法重启 tor 。
1 d33n99 2016-04-22 03:33:07 +08:00 via iPhone 捕捉到 500 错误后并往 tor 的控制端口发送一个 new identity 命令 |
4 knightdf 2016-04-22 08:55:12 +08:00 首先你得让 500 错误的 response 被返回 parse ,然后在做 status 检查,因为 scrapy 默认是会重试 5xx 并且不会触发 parse 的 |
5 d33n99 2016-04-22 17:52:13 +08:00 http://blog.csdn.net/haipengdai/article/details/48526507 不好意思,一开始没理解您 @lbfeng 的意思,没有用过 scrapy,不过这博文应该对你有帮助:-) |
8 lbfeng OP @d33n99 出现另一个问题,当又第一个 500 之后重新得到 identity 。但 scrapy 有多个线程会发送多个请求导致 Rate limiting NEWNYM request: delaying by x second(s)。 |