解决反爬问题

来源: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回答

bobby

2019-09-12

cnblogs对列表页的数据做了权限控制,可以使用浏览器访问一下,前几页的数据不用登录就能访问,但是后面的页码,比如8页之后的数据即使用浏览器也需要登录之后才能访问,所以cnblogs应该是通过ip做了限制,比如多长距今多长时间以前的url只有登录才能访问

0
0

bobby

2019-09-09

  1. 你的ip是否每次请求都是随机切换的?

  2. 有没有在settings中设置cookie_enabled为false?如果没有的话那么后续每个请求的cookie都可能会是一样。只要cookie是一样的,即使你的ip是变动的,网站也能通过cookie取出你是哪个用户

  3. 50个ip其实也不算多, 一般网站除了通过cookie反爬以外。通过ip的频率限制也是一个非常常用的手段。比如网站通过每分钟每个ip不超过十个访问,这种配置方式非常灵活。至于什么规律需要自己去尝试,每个网站都不一样,所以不论如何最好都要控制你的爬取频率而不是一味的不限速

0
3
DreamHacker
回复
bobby
861529752
2019-09-11
共3条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5795 学习 · 6290 问题

查看课程