机器都在不停学习
人怎么能停止脚步

解决IT桔子爬虫的登录问题

IT桔子是关注IT互联网行业的结构化的公司数据库和商业信息服务提供商,里面有很多有用的信息。于是,我又想爬IT桔子?来提升一下我的爬虫技术了。(注意:IT桔子有用户校验机制,没有购买VIP的用户很多信息是看不到的)

我选择爬取IT桔子网站上的公司,爬虫入口地址,一开始爬虫是很顺利的,爬虫的数据放在MongoDB里面

MongoDB中存放的部分数据

但是很快,就碰到了IT桔子的反爬虫,一查才知道,原来是自己的ip访问过于频繁,被IT桔子ban了。于是,我购买了一个代理IP池,不停切换IP来运行爬虫,果然顺利了很多。

果然我还是太年轻,以为买了代理ip就解决问题了,很快我再次被ban了,但是通过页面上登录可以正常进入。查一下我找到了原因:我的cookie信息过期了

我观察了一下爬虫请求的headers。

headers里面判断身份是cookie与authorization两个字段,其中cookie字段里面最关键的是acw_tc参数。

观察发现,acw_tc应该是一个字母与数字组合的随机字符串。并且长度应该是62位,可以直接用Python生成随机的62位字符串得到cookie字段。

拿到cookie后,缺少authorization字段,好像也没有什么用。我试着去登录了一下:IT桔子登录界面入口

启用F12开发者工具抓包

左侧是登录后的页面,右侧是网络请求信息

可以看到一个名为authorization的请求,点进去进行分析,在接口的response里可以看到这些信息。

response信息

可以看到,这个接口向我们返回了一个token,这个token的value前面有一个‘bearer’和前面看到的authorization一样,因此初步判断,这个接口应该就是使用cookie中的acw_tc值获得authorization的方法。

拿到cookie与authorization两个参数后,包装成一个headers,再向文章开头的地址发送请求,结果通了,说明我们生产的headers生效了。

这里还是花了一点心思的,但是问题解决的时候也很开心,目前已经可以稳定的爬虫了。

另外,在向身边的安全测试工程师沟通的过程中了解到了一些web安全方面的知识,除了这种方法动态获得headers,还可以把用户名密码放到selenium中,间隔一段时间出发一些点击事件,让后台服务器误以为这个用户一直在浏览,延长账号密码的生命周期。但是这里我没有时间再尝试了,快速拿到数据进行分析对我来说是最重要的。

心得:

  1. 爬虫过程中遇到的问题,通常不能一次解决掉,总是在过程中不停遇到问题,不停解决。
  2. 爬虫与反爬虫的斗争,最后一定是爬虫获胜。因为反爬虫再怎么严厉,也一定不会反用户。

赞(0)
转载请注明出处机器在学习 » 解决IT桔子爬虫的登录问题
分享到: 更多 (0)

评论 8

  1. #-49

    你好,发现一直报错400,什么原因?{“status”:”error”,”code”:400,”message”:”\u9700\u8981\u5f00\u901aVIP”}
    acw_tc=IUXnM4Wg1h0bNZsBFfq2iVrCKjxzQAkaT8OyERvdwoHtJDLYGeSpl9573umPc6;
    遇到了反爬虫3,休息10秒,重新生成headers

    匿名1年前 (2018-11-14)回复
  2. #-48

    你好,发现一直报错400,什么原因?{“status”:”error”,”code”:400,”message”:”\u9700\u8981\u5f00\u901aVIP”}
    acw_tc=IUXnM4Wg1h0bNZsBFfq2iVrCKjxzQAkaT8OyERvdwoHtJDLYGeSpl9573umPc6;
    遇到了反爬虫3,休息10秒,重新生成headers

    Lance1年前 (2018-11-14)回复
    • 你好,感谢回复。你的账号是VIP账号吗?IT橘子浏览数据需要购买VIP才可以

      monk1年前 (2018-11-15)回复
  3. #-47

    感觉cook的拼接方法又变了…求楼主指导

    Lance1年前 (2018-11-14)回复
  4. #-46

    可以了,楼主厉害,点赞!!!

    匿名1年前 (2018-11-16)回复
    • 谢谢,欢迎继续交流,一起进步。

      monk1年前 (2018-11-16)回复
  5. #-45

    早就失效了

    ospider7个月前 (05-16)回复
    • IT橘子反爬虫策略经常变的,这个文章有一段时间没有维护了

      monk7个月前 (05-17)回复
Scroll Up