前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为爬虫获取登录cookies:登录的恩恩怨怨

为爬虫获取登录cookies:登录的恩恩怨怨

作者头像
一墨编程学习
发布2019-05-15 11:10:44
8150
发布2019-05-15 11:10:44
举报

讲到的新闻爬虫,是基本不受目标服务器限制的爬虫,技术上的挑战主要在抓取任务的管理、分配,并发的使用,提高效率等方面。而实际中,不同抓取目标的爬虫会遇到很多阻碍,这个阻碍就是登录

曾几何时,登录是一件很简单的事情,一个账户及其密码,POST给服务器,服务器验证通过即可。那是一个美好的朴素年代,服务器不设防,用户不贪婪。然而,时过境迁,人心变了。越来越多的人想要收集数据,爬虫也就越来越多;而网站就有了网络请求压力,也有了死守数据私心。天下熙熙,皆为利来;天下攘攘,皆为利往。现在的互联网,就成了一个利字当头、魔高一尺道高一丈的战场。

如今,各种网站都设置了复杂的登录这堵高高的墙来阻止爬虫大量甚至全部获取网站的数据。比如,12306的验证码是点选图片,微博是变形的字母验证码,知乎是点选倒立的汉字,哔哩哔哩通过拖动滑块拼图来验证。这些变态的验证过程都是加入人的交互来防止爬虫自动登录,从而阻止爬虫自动化的大批量抓取。

大家都已经知道,HTTP协议是无状态的,用户登录的状态靠cookies在浏览器和服务器之间来回传送来记录。完成登录后,cookies在一定时间范围内是保持不变的,直接获得这个cookies给爬虫用,就可以让爬虫有了登录的状态,进而进行后面的抓取,当然,这个抓取只能持续到cookies过期之前。

Python学习交流群【 784758214 】内有安装包和学习视频资料,零基础,进阶,解答疑问。希望可以帮助你快速了解Python、学习python

1. 爬虫登录的三种层次

完成登录这个过程,最好是程序自动化的实现,那么你写好程序后就可以一边儿玩去了;然而好多时候,事情不是那么让人省心,登录还需要人工参与一下下。总结下来,实现登录有以下三个层次:

  1. 简单的POST账户密码就可以实现自动化登录;
  2. 通过程序可以模拟出登录流程实现自动化登录;
  3. 登录需要人工(智能)介入,人工智能实现自动化登录;

第一个层次,使用requests模块加一两行代码就可以实现,关键是而今遇到这样的良心网站是可遇不可求的。 第二个层次,是很有挑战性的,也是爬虫界人士力求达到的层次。 第三个层次,是很方便的,临时抓取定量数据的宝典利器,无法是人工输入一下验证码;利用人工智能识别验证码,同样也可以达到完全无人介入的地步,但是这已经不是爬虫的范畴了,而要实现人工智能破解各种变态的验证码所耗费的资源也是难以想象的。

由此看来,登录状态cookies的获取,主要还是靠模拟登录流程或人工输入验证码的方式实现。

2. 爬虫登录分析的三类工具

模拟登录,首先就要分析出目标网站的登录流程才能进行程序模拟。而要分析这个过程,就需要工具的辅助,这样的工具有:

  • Chrome浏览器开发者工具(F12)
  • Charles、Fiddler Web调试代理(Web Debugging Proxy)工具
  • Wireshark抓包工具

Chrome的F12,我们前面已经介绍过了,它可以很好的帮助我们分析了解网站的加载过程,但相对于专业工具Charles等又稍显不足;Wireshark是专业的抓包工具,它不仅仅可以分析http协议,TCP、UDP等照样不在话下,但对我们分析登录流程又过于复杂。所以我们还是选择Charles、Fiddler这样的专门的Web(http)调试代理。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.05.06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 爬虫登录的三种层次
  • 2. 爬虫登录分析的三类工具
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档