您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

讲讲Python爬虫绕过登录的小技巧

时间:2019-08-05 13:15:15  来源:  作者:
来源:公众号Python知识圈
作者 pk哥
 

前言

很多时候我们做 Python 爬虫时或者自动化测试时需要用到 selenium 库,我们经常会卡在登录的时候,登录验证码是最头疼的事情,特别是如今的文字验证码和图形验证码。文字和图形验证码还加了干扰线,本文就来讲讲怎么绕过登录页面。

登录页面的验证,比如以下的图形验证码。

讲讲Python爬虫绕过登录的小技巧

 

 

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

讲讲Python爬虫绕过登录的小技巧

 

 

绕过登录方法

绕过登录基本有两种方法,第一种方法是登录后查看网站的 cookie,请求 url 的时候把 cookie 带上,第二种方法是启动浏览器带上浏览器的全部信息,包括添加的书签和访问网页的 cookie 信息。

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

添加 cookie 绕过登录

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

讲讲Python爬虫绕过登录的小技巧

 

 

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

讲讲Python爬虫绕过登录的小技巧

 

 

下载浏览器驱动

我们要 selenium 启动浏览器时,需要下载后对应的驱动文件并放在 Python 安装的根目录下,比如我会用到谷歌 Chrome 浏览器和 Firefox 火狐浏览器。

讲讲Python爬虫绕过登录的小技巧

 

谷歌浏览器驱动下载地址:

http://chromedriver.storage.googleapis.com/index.html

 

火狐浏览器驱动下载地址:

https://github.com/mozilla/geckodriver/releases/

 

启动 Chrome 浏览器绕过登录

我们每次打开浏览器做相应操作时,对应的缓存和 cookie 会保存到浏览器默认的路径下,我们先查看个人资料路径,以 chrome 为例,我们在地址栏输入 chrome://version/

讲讲Python爬虫绕过登录的小技巧

 

 

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

profile_directory = r'--user-data-dir=C:Users\xxxAppDataLocalGoogleChromeUser Data'

 

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

讲讲Python爬虫绕过登录的小技巧

 

 

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

讲讲Python爬虫绕过登录的小技巧

 

启动 Firfox 浏览器绕过登录

Firfox 火狐浏览也可以这样启动它,设置略有不同。

首先,查看配置文件的存储路径,查看方法:帮助–故障排除信息–配置文件夹,把里面的路径复制过来就行。

讲讲Python爬虫绕过登录的小技巧

 

 

同样,我们把路径放在变量中。

profile_path = <span class="hljs-string">r'C:UsersguixianyangAppDataRoamingMozillaFirefoxProfilesdvm6wqam.default'</span>

 

我们也在火狐浏览器中登录好百度的账号,用 selenium 自动化启动带配置文件的火狐浏览器,也会发现启动时已经启动了浏览器安装的插件和登录好的百度账号。

讲讲Python爬虫绕过登录的小技巧

 

 

绕过图形验证码的网站

文中第一个图是简书登录时的图形验证码,我们登录简书后(cookie 有一定的时效,貌似有 10 天半个月左右),把上面代码中的链接换成简书的,再用上面的方法觉可以实现绕过登录页的图形验证码。

比如我直接打开我的简书个人主页

https://www.jianshu.com/u/52353ffa8b86

 

自动化启动后也是保留了登录的状态。

讲讲Python爬虫绕过登录的小技巧

 

 

网站的登录大门已被打开,接下来就可以做自己想做的事情了,比如爬虫、自动化测试验证之类的。

PS:以上技巧对有些网站可能不管用,但是对大部分网站还有适用的,觉得本文小技巧有用的自己赶紧试试吧。



Tags:Python 爬虫   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
爬虫应用的广泛,例如搜索引擎、采集数据、广告过滤、数据分析等。当我们对少数网站内容进行爬取时写多个爬虫还是有可能的,但是对于需要爬取多个网站内容的项目来说是不可能编写多个爬虫的,这个时候我们就需要智能爬虫。...【详细内容】
2019-10-18  Tags: Python 爬虫  点击:(94)  评论:(0)  加入收藏
前言每当看到几十万的阅读量的文章后面区区几个评论, 心中就在想, 难道大家现在都这么懒了吗? 但是有些文章阅读量不高, 评论为什么这么多呢?我想这些应该都是刷的, 不光...【详细内容】
2019-08-26  Tags: Python 爬虫  点击:(585)  评论:(0)  加入收藏
这是最简单的Python爬虫案例,如果你能看懂,那么请你保持信心,因为你已经入门Python爬虫,只要带着信心和努力,你的技术能力在日后必定价值15K月薪。 这次是要爬取网易新闻,包括新闻...【详细内容】
2019-08-09  Tags: Python 爬虫  点击:(298)  评论:(0)  加入收藏
很多时候我们做 Python 爬虫时或者自动化测试时需要用到 selenium 库,我们经常会卡在登录的时候,登录验证码是最头疼的事情,特别是如今的文字验证码和图形验证码。文字和图形验证码还加了干扰线,本文就来讲讲怎么绕过登录...【详细内容】
2019-08-05  Tags: Python 爬虫  点击:(311)  评论:(0)  加入收藏
目标场景在移动互联网时代,很大一部分企业抛弃了传统的网站,选择将数据、服务整合到 App 端,因此 App 端无论是爬虫还是反反爬都显得尤为重要。常见的 App 端的爬虫方式是利用...【详细内容】
2019-07-24  Tags: Python 爬虫  点击:(342)  评论:(0)  加入收藏
▌简易百科推荐
大家好,我是菜鸟哥,今天跟大家一起聊一下Python4的话题! 从2020年的1月1号开始,Python官方正式的停止了对于Python2的维护。Python也正式的进入了Python3的时代。而随着时间的...【详细内容】
2021-12-28  菜鸟学python    Tags:Python4   点击:(1)  评论:(0)  加入收藏
学习Python的初衷是因为它的实践的便捷性,几乎计算机上能完成的各种操作都能在Python上找到解决途径。平时工作需要在线学习。而在线学习的复杂性经常让人抓狂。费时费力且效...【详细内容】
2021-12-28  风度翩翩的Python    Tags:Python   点击:(1)  评论:(0)  加入收藏
Python 是一个很棒的语言。它是世界上发展最快的编程语言之一。它一次又一次地证明了在开发人员职位中和跨行业的数据科学职位中的实用性。整个 Python 及其库的生态系统使...【详细内容】
2021-12-27  IT资料库    Tags:Python 库   点击:(2)  评论:(0)  加入收藏
菜单驱动程序简介菜单驱动程序是通过显示选项列表从用户那里获取输入并允许用户从选项列表中选择输入的程序。菜单驱动程序的一个简单示例是 ATM(自动取款机)。在交易的情况下...【详细内容】
2021-12-27  子冉爱python    Tags:Python   点击:(4)  评论:(0)  加入收藏
有不少同学学完Python后仍然很难将其灵活运用。我整理15个Python入门的小程序。在实践中应用Python会有事半功倍的效果。01 实现二元二次函数实现数学里的二元二次函数:f(x,...【详细内容】
2021-12-22  程序汪小成    Tags:Python入门   点击:(32)  评论:(0)  加入收藏
Verilog是由一个个module组成的,下面是其中一个module在网表中的样子,我只需要提取module名字、实例化关系。module rst_filter ( ...); 端口声明... wire定义......【详细内容】
2021-12-22  编程啊青    Tags:Verilog   点击:(9)  评论:(0)  加入收藏
运行环境 如何从 MP4 视频中提取帧 将帧变成 GIF 创建 MP4 到 GIF GUI ...【详细内容】
2021-12-22  修道猿    Tags:Python   点击:(6)  评论:(0)  加入收藏
面向对象:Object Oriented Programming,简称OOP,即面向对象程序设计。类(Class)和对象(Object)类是用来描述具有相同属性和方法对象的集合。对象是类的具体实例。比如,学生都有...【详细内容】
2021-12-22  我头秃了    Tags:python   点击:(9)  评论:(0)  加入收藏
所谓内置函数,就是Python提供的, 可以直接拿来直接用的函数,比如大家熟悉的print,range、input等,也有不是很熟,但是很重要的,如enumerate、zip、join等,Python内置的这些函数非常...【详细内容】
2021-12-21  程序员小新ds    Tags:python初   点击:(5)  评论:(0)  加入收藏
Hi,大家好。我们在接口自动化测试项目中,有时候需要一些加密。今天给大伙介绍Python实现各种 加密 ,接口加解密再也不愁。目录一、项目加解密需求分析六、Python加密库PyCrypto...【详细内容】
2021-12-21  Python可乐    Tags:Python   点击:(8)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条