爬虫主要目的是获取数据,常见的数据可以直接访问网页或者抓包获取,然后再解析即可.

一些较为隐私的数据则不会让游客身份的访问者随便看到,这个时候便需要登录获取.

一般获取数据需要的是登录后的cookie作为身份验证,如果一个可用cookie就能满足你的爬虫需要,可以不用模拟登录,

直接在网页上登录,拷贝cookie下来,写死在代码中.

其他的情况可能需要代码帮你登录,然后获取登录的cookie,再去访问你需要的数据.

首先,你需要有一个帐号(或者多个,当你想大量访问数据而cookie又有限制时.),当然,还有密码.

对于我来说,登录手段总体分为两种:

1.使用浏览器模拟登录;

2.使用请求接口模拟登录.

这两个方法均为通用登录方式,即一般的网站经过一定的分析,就可以用这些方法登录.

一用浏览器模拟登录,比较简单粗暴,但是效率低下.

优点在于不用过多分析,直接操作selenium等,代码写起来简单快捷,登录成功只需尝试几次即可.

当遇到验证码时一般是截取下来,手动输入或者请求打码平台输入.可能截取稍费功夫.

二用请求登录,有的网站简单,有的网站复杂.

最简单的网站只有一个请求,也不加密,带上你的帐号密码,模拟请求一次即可成功.

其次是有前提的登录,需要提前请求一些信息,作为登录参数,传入你要构造的登录请求之中,再去模拟登录,方能成功.

再次是拿了先验条件之后,还有大量的加密算法,需要根据对应的算法给你的帐号和用户名加密,再写入请求.

最麻烦的是登录成功了还有很多验证,包括验证码,图片识别,个人隐私密保等相关问题,这种不在讨论范围之内.

Python爬虫常用之登录(一) 思想的更多相关文章

  1. Python爬虫常用之登录(三) 使用http请求登录

    前面说了使用浏览器登录较为简单,不需要过多分析,而使用请求登录恰恰就是以分析为主. 开发一个请求登录程序的流程: 分析请求->模拟请求->测试登录->调整参数->测试登录-&g ...

  2. Python爬虫常用之登录(二) 浏览器模拟登录

    浏览器模拟登录的主要技术点在于: 1.如何使用python的浏览器操作工具selenium 2.简单看一下网页,找到帐号密码对应的框框,要知道python开启的浏览器如何定位到这些 一.使用selen ...

  3. Python爬虫之模拟登录微信wechat

    不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...

  4. Python爬虫-百度模拟登录(二)

    上一篇-Python爬虫-百度模拟登录(一) 接上一篇的继续 参数 codestring codestring jxG9506c1811b44e2fd0220153643013f7e6b1898075 ...

  5. Python爬虫-百度模拟登录(一)

    千呼万唤屎出来呀,百度模拟登录终于要呈现在大家眼前了,最近比较忙,晚上又得早点休息,这篇文章写了好几天才完成.这个成功以后,我打算试试百度网盘的其他接口实现.看看能不能把服务器文件上传到网盘,好歹也有 ...

  6. Python爬虫常用小技巧之设置代理IP

    设置代理IP的原因 我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站.假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问.所以你可以设置一些代理服务器来 ...

  7. 爬虫-Python爬虫常用库

    一.常用库 1.requests 做请求的时候用到. requests.get("url") 2.selenium 自动化会用到. 3.lxml 4.beautifulsoup 5 ...

  8. python爬虫+使用cookie登录豆瓣

    2017-10-09 19:06:22 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言: 先获得cookie,然后自动登录豆瓣和新浪微博 系统环境: 64位win10系统,同时装pytho ...

  9. python爬虫-使用cookie登录

    前言: 什么是cookie? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想 ...

随机推荐

  1. 下拉菜单--JavaScript触发方法

    1. $(function(){ $(".dropdown-toggle").one("click",function(){ $(this).dropdown( ...

  2. Ubuntu使用tzselect修改时区

    1.命令行运行 sudo tzselect 2.选择洲区(这里选择亚洲Asia) waichung@desktop:~$ sudo tzselect [sudo] password for waich ...

  3. HashMap的小试牛刀

    HashMap的介绍 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.ut ...

  4. Mysql主主复制+keepalived

    1>环境 Master1 10.0.0.201 Master2 10.0.0.202 2>Master1操作授权 mysql>grant replication slave on * ...

  5. svn(subversion)代码管理

    想必大家现在都比较喜欢使用svn(subversion)完成代码管理了,因为它的开源,轻巧,易用.但是这样一个宝贝如果不知道其正确的用法,也会让我们百思不得其解,甚至耽误项目进度,浪费程序员的心血和结 ...

  6. Linq转换操作之ToArray,ToList,ToDictionary源码分析

    Linq转换操作之ToArray,ToList,ToDictionary源码分析 一:linq中的转换运算符 1. ToArray 我们经常用在linq查询上吧. linq只能运用在IEnumerab ...

  7. 数独高阶技巧入门之三——Fish

    术语Fish代表了一组工作原理相同的关于特定候选数的解题技巧(Fish技巧直接产生自数独规则——每个单元内的数字都不能重复),Fish家族成员包括“体型”从小到大的X-Wing.Swordfish. ...

  8. HTTP杂项

    HTTP请求头中的origin, referer和host三个字段的区别 host 描述请求将被发送的目的地,包括,且仅仅包括域名和端口号 在任何类型请求中,request都会包含此header信息. ...

  9. WinForm中的重绘 - 按钮等控件的背景渐变色重绘

    注:brush通过起止坐标来控制重绘范围及方向.比如从上到下渐变时,brush第二个Point参数是左下角坐标. private void PaintGradientBackground(Button ...

  10. 适用于Java的嵌入式脚本语言

    此文已由作者赵昕授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. fakescript 轻量级嵌入式脚本语言 https://github.com/esrrhs/fakescr ...