400-616-5551

您所在位置: 首页> 学习课程> python培训 | 怎样用Python爬虫绕过登录验证码?

python培训 | 怎样用Python爬虫绕过登录验证码?

发布百知教育 来源:学习课程 2019-11-06

很多时候我们需要使用Selenium库来执行python爬虫或自动测试,但是我们经常会在登录时因为验证代码而卡住,特别头疼。尤其是现在的图形认证代码和移动滑块验证码,连最简单的文本数字验证代码也被加了干扰线。比如以下的图形验证码。


还有我们基本都看过的 12306 的图形验证码。


python培训


还有这种滑块验证码


python培训


如果直接进行登录的话这些验证码破解起来的话都会比较的麻烦,费时费力,所以我们想想有没有办法绕过这个登录过程。其实是有的,下面我们就来讲讲如何绕过这个登录

绕过登录基本有两种方法:

  • 第一种方法是登录后查看网站的 cookie,请求 url 的时候把 cookie 带上

  • 第二种方法是启动浏览器带上浏览器的全部信息,包括添加的书签和访问网页的 cookie 信息。

第一种 cookie 方法我们要分析别人网站的 cookie 值,找出相应的值然后添加进去,对于我们不熟的网站,他们可能也会做加密或者动态处理,所以有些网站也不是那么好操作。如果是自己公司的网站需要测试,我们可以询问对应的开发那个 cookie 值是区分独立用的值,拿出来放在请求里面就行。

添加cookie绕过登录


比如我们登录百度账号比较费劲,每次都需要登录也比较繁琐,我们 F12 打开页面调试工具,登录后找到 www.baidu.com 文件,在 cookie 中,我们发现很多值,其中图中圈起来的就是我们要找的值。


我们在访问 baidu 链接的时候加上这个 cookie 值,这样就是直接登录后的百度账号了。


python培训


运行之后会发现selenium刚打开浏览器时未登录


但是刷新之后页面就变成登录了


可见我们成功的绕开了输入账号密码阎验证码登录这个过程。


带上浏览器的信息启动


这个方法其实就是我们实现在浏览器中对该网站进行登录,对应的缓存和 cookie 会保存到浏览器默认的路径下,当我们使用selenium打开浏览器时,把浏览器的所有信息资料都添加进去,打开网站之后我们之前登录保存的cookie就会启用,直接就是已登录状态。

我们先查看个人资料路径,以 chrome 为例,我们在地址栏输入 chrome://version/

python培训


图中的个人资料路径就是我们需要的,我们去掉后面的 \Default,然后在路径前加上–user-data-dir=就能拼接出我们要的路径了。

接下来,我们启动浏览器的时候采用带选项时的启动,这种方式启动浏览器需要注意,运行代码前需要关闭所有的正在运行 chrome 程序,不然会报错。

selenium 自动化启动浏览器后我们会发现之前保存的书签完整在浏览器上方,baidu 账号也是登录的状态。

python培训:http://www.baizhiedu.com/python2019








上一篇:python培训 | python爬虫入门实战,动态爬取论坛列表

下一篇:应届生去公司找个Java程序员的职位需要什么技能?

相关推荐

www.baizhiedu.com

有位老师想和您聊一聊

关闭

立即申请