0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python爬虫绕过登录的小技巧

马哥Linux运维 来源:lq 2019-05-07 16:08 次阅读

前言

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

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

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

绕过登录方法

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

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

添加 cookie 绕过登录

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

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

下载浏览器驱动

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

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

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

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

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

启动 Chrome 浏览器绕过登录

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

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

profile_directory=r'--user-data-dir=C:UsersxxxAppDataLocalGoogleChromeUserData'

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

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

启动 Firfox 浏览器绕过登录

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

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

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

profile_path=r'C:UsersguixianyangAppDataRoamingMozillaFirefoxProfilesdvm6wqam.default'

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

绕过图形验证码的网站

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

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

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

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 浏览器
    +关注

    关注

    1

    文章

    974

    浏览量

    34403
  • python
    +关注

    关注

    51

    文章

    4674

    浏览量

    83458
  • 爬虫
    +关注

    关注

    0

    文章

    77

    浏览量

    6514

原文标题:讲讲Python爬虫绕过登录的小技巧

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Python数据爬虫学习内容

    ,利用爬虫,我们可以解决部分数据问题,那么,如何学习Python数据爬虫能?1.学习Python基础知识并实现基本的爬虫过程一般获取数据的过
    发表于 05-09 17:25

    Python爬虫与Web开发库盘点

    Python爬虫和Web开发均是与网页相关的知识技能,无论是自己搭建的网站还是爬虫爬去别人的网站,都离不开相应的Python库,以下是常用的Pyth
    发表于 05-10 15:21

    Python爬虫初学者需要准备什么?

    ,想从事这方面的工作,需掌握以下知识:1. 学习Python基础知识并实现基本的爬虫过程一般获取数据的过程都是按照发送请求-获得页面反馈-解析并且存储数据 这三个流程来实现的。这个过程其实就是模拟
    发表于 06-20 17:14

    Python爬虫全国大学招生的生源数据分析

    Python爬虫:全国大学招生信息(二):生源数据分析(matplotlib)
    发表于 03-09 10:20

    0基础入门Python爬虫实战课

    学习资料良莠不齐爬虫是一门实践性的技能,没有实战的课程都是骗人的!所以这节Python爬虫实战课,将帮到你!课程从0基础入门开始,受众人群广泛:如毕业大学生、转行人群、对Python
    发表于 07-25 09:28

    Python爬虫简介与软件配置

    Python爬虫练习一、爬虫简介1. 介绍2. 软件配置二、爬取南阳理工OJ题目三、爬取学校信息通知四、总结五、参考一、爬虫简介1. 介绍网络爬虫
    发表于 01-11 06:32

    python网络爬虫概述

    提交一些关键字才能获取的Web页面,如登录或注册后访问的页面。应用场景爬虫技术在科学研究、Web安全、产品研发、舆情监控等领域可以做很多事情。在数据挖掘、机器学习、图像处理等科学研究领域,如果没有
    发表于 03-21 16:51

    详细用Python写网络爬虫

    详细用Python写网络爬虫
    发表于 09-07 08:40 32次下载
    详细用<b class='flag-5'>Python</b>写网络<b class='flag-5'>爬虫</b>

    完全自学指南Python爬虫BeautifulSoup详解

    完全自学指南Python爬虫BeautifulSoup详解
    发表于 09-07 08:55 36次下载
    完全自学指南<b class='flag-5'>Python</b><b class='flag-5'>爬虫</b>BeautifulSoup详解

    WebSpider——多个python爬虫项目下载

    此文档包含多个python爬虫项目
    发表于 03-26 09:29 3次下载

    Python爬虫8个常用的爬虫技巧分析总结

    python也差不多一年多了,python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。
    的头像 发表于 08-18 11:45 4872次阅读

    python爬虫入门教程之python爬虫视频教程分布式爬虫打造搜索引擎

    本文档的主要内容详细介绍的是python爬虫入门教程之python爬虫视频教程分布式爬虫打造搜索引擎
    发表于 08-28 15:32 29次下载

    python爬虫框架有哪些

    本视频主要详细介绍了python爬虫框架有哪些,分别是Django、CherryPy、Web2py、TurboGears、Pylons、Grab、BeautifulSoup、Cola。
    的头像 发表于 03-22 16:13 6453次阅读

    Python写网络爬虫

    Python写网络爬虫的方法说明。
    发表于 06-01 11:55 21次下载

    利用Python编写简单网络爬虫实例

    利用 Python编写简单网络爬虫实例2 实验环境python版本:3.3.5(2.7下报错
    发表于 02-24 11:05 13次下载