解决反爬问题
来源:8-8 scrapy实现ip代理池 - 3
DreamHacker
2019-09-06
老师好,在爬取cnblogs时,大概爬取100多条数据时(没设置DOWNLOAD_DELAY),遇到
2019-09-06 11:14:26 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (302) to <GET https://account.cnblogs.com/signin?returnUrl=https%3A%2F%2Fnews.cnblogs.com%2Fn%2F630237%2F> from <GET https://passport.cnblogs.com/user/signin?ReturnUrl=https%3A%2F%2Fnews.cnblogs.com%2Fn%2F630237%2F>
我设置了随机的user-agent(fake-useragent),维护了一个50个ip的ippool(付费的),每次请求都是随机的ip,网站是如何识别出我是爬虫的,要求我进行登入。如果我不想通过登入的方式继续爬虫,应该如何解决?或者我如何去了解这个网站的反爬机制?
2回答
-
cnblogs对列表页的数据做了权限控制,可以使用浏览器访问一下,前几页的数据不用登录就能访问,但是后面的页码,比如8页之后的数据即使用浏览器也需要登录之后才能访问,所以cnblogs应该是通过ip做了限制,比如多长距今多长时间以前的url只有登录才能访问
00 -
bobby
2019-09-09
你的ip是否每次请求都是随机切换的?
有没有在settings中设置cookie_enabled为false?如果没有的话那么后续每个请求的cookie都可能会是一样。只要cookie是一样的,即使你的ip是变动的,网站也能通过cookie取出你是哪个用户
50个ip其实也不算多, 一般网站除了通过cookie反爬以外。通过ip的频率限制也是一个非常常用的手段。比如网站通过每分钟每个ip不超过十个访问,这种配置方式非常灵活。至于什么规律需要自己去尝试,每个网站都不一样,所以不论如何最好都要控制你的爬取频率而不是一味的不限速
032019-09-11
相似问题