专栏首页程序员的知识天地为爬虫获取登录cookies:登录的恩恩怨怨

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

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

曾几何时,登录是一件很简单的事情,一个账户及其密码,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)调试代理。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 月薪2万的爬虫工程师,Python需要学到什么程度?

    非计算机专业,正在自学python,很多教程里提到的网站的爬虫都会写了。比如拉勾网,豆瓣,实习僧,京东,淘宝,某妹子图等等……但是因为不是计算机专业的,也没学所...

    一墨编程学习
  • 听说你好不容易写了个爬虫,结果没抓几个就被封了?

    在这个数据驱动的时代,仿佛只要掌握了大数据,就对时代潮流和风向预测有了更令人信服的发言权。

    一墨编程学习
  • python爬虫入门:什么是爬虫,怎么玩爬虫?

    爬虫可以用到一些 Http 库向指定的服务器偷偷摸摸的发起请求,这个时候爬虫可以假装自己是浏览器(添加一些header信息)

    一墨编程学习
  • Scrapy爬虫学习记录

    昨天休息的时候偶然发现了一个的球鞋网站,上面有很多关于球鞋的资讯。于是,决定现学现卖,学习scrapy把数据都给爬下来。

    100000798482
  • 数据化时代,爬虫工程师才是真正“扛把子”

    就像在饭店里,你点了土豆并且能吃到,是因为有人帮你在土豆、萝卜、西红柿等中找到土豆,也有人把土豆拿到你桌上。在网络上,这两个动作都是由一位叫做爬虫的同学帮你实现...

    数据猿
  • Python|简单理解网络爬虫带你入门

    入门编程的小白们总是对计算机领域的各种“黑科技”感到好奇,其中“爬虫”对于小白来说算是一个高大上的技术,所以今天我将为大家揭开爬虫神秘的面纱,同时带领大家和我一...

    算法与编程之美
  • 当前登录人管理——UserManage源代码下载(2009.10.16更新)

    一、介绍和下载 名称: 当前登录人管理(UserManage) 版本: 1.0.0 上传时间: 2009.10.28 主要功能: 用户登录,保存登录状...

    用户1174620
  • Python 网络爬虫概述

    几乎每个网站都有一个名为robots.txt的文档,当然也有有些网站没有设定。对于没有设定robots.txt的网站可以通过网络爬虫获取没有口令加密的数据,也就...

    Python知识大全
  • Python 爬虫介绍

    作为程序员,相信大家对“爬虫”这个词并不陌生,身边常常会有人提这个词,在不了解它的人眼中,会觉得这个技术很高端很神秘。不用着急,我们的爬虫系列就是带你去揭开它的...

    纯洁的微笑
  • 爬虫管理平台Crawlab v0.3.0发布(Golang版本)

    基于Golang的分布式爬虫管理平台,支持Python、NodeJS、Java、Go、PHP等多种编程语言以及多种爬虫框架。

    MarvinZhang

扫码关注云+社区

领取腾讯云代金券