Python爬虫教程,slenium模拟登陆知乎2020

万字攻略全面了解selenium_selenium教程 一起学习下python爬虫4小分队(scrapy、beautifulsoup、selenium以及pyppeteer)之一的Selenium库,主要用于模拟浏览器运行,是一个用于web应用测试的工具。Selenium直接运行在浏览器中,看起来就像人在操作一样(也可无窗口模式运行)。支持的浏览器包括IE、Firefox、Safari、Chrome、Opera和Edge等。............ 阅读详情

文章目录

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:961562169

引言

之所以写这篇文章,主要是因为:

  • 前面写了很多selenium爬虫相关的文章,帮到很多读者解决了不少问题
  • selenium爬虫门槛较低,对初学爬虫的小白比较友好
  • 不知道是有很多读者拿知乎练手,还是知乎碰壁的朋友搜到了我的文章
  • 后台一直有朋友在问为什么按我的方法登陆不成功
  • 之前一直说空了试试,所以便有了今天这篇文章

登录成功

先上selenium登录成功的效果图

在这里插入图片描述

解决方案

碰到的问题

先说下碰到的问题,这可能也是很多人碰到的

  • window.navigator.webdriver为 True的问题,这个不多说了,基本上来问我的都是从我前面这篇文章:关于修改window.navigator.webdriver代码失效问题 过来的,我一开始也试了确实是登陆失败的,所以我给出的回复基本上都是我那篇博客是解决修改 window.navigator.webdriver为undefined的问题的,这一步是必要的,没解决的回看一下我前面那篇文章
  • 第二点应该就是大家一直没解决的问题了,如下图,需要验证,这个是个虚假验证,拦直接阶段了后面发送验证码的功能,相当于陷入了while True的死循环里,切换到密码登陆也是一样的在这里插入图片描述

解决方案

其实说起来你可能不信,我自己都不相信竟然如此简单,代码压根不用管
直接用第三方登陆就ok,亲测有效,微信,QQ,微博都ok,
就是下图这几个玩意儿,登录成功之后就可以开始各位的表演了,
天高任鸟飞,海阔凭鱼跃,加油,奥利给

在这里插入图片描述

再贴一波代码

from selenium import webdriver
chrome_options = webdriver.ChromeOptions()

#修改windows.navigator.webdriver,防机器人识别机制,selenium自动登陆判别机制
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation']) 
drive = webdriver.Chrome(options=chrome_options)


#CDP执行JavaScript 代码  重定义windows.navigator.webdriver的值
drive.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    })
  """
})
url = 'https://www.zhihu.com/signin?next=%2F'
drive.implicitly_wait(10)
drive.get(url)

想看登录知乎的到这里就ok了,可以撤退了,如果对selenium不太熟悉的可以直接拉到最后,参考资料里,给各位指好路了,没办法,来者是客,为了满足各位,真是老费心了!

看在我这么卖力的份上,点赞,收藏,转发!来一波支持呗(可怜脸)

下面有一小节是本次实验中的意外收获,使用dos命令启动chrome浏览器,然后用selenium接管dos命令新启动的chrome浏览器,然后使用selenium继续后续操作!

其实一开始绕不过验证的时候,我一直想这么搞得,但是没有成功过,这次试验知乎

偶然间实现了,所以下一节的名字叫意外收获,确实意外的惊喜

使用下面的方法登录知乎的话,原理一样,也是直接使用第三方账户登录

意外收获

一种对小白更友好的爬虫方式

一、创建项目文件夹

  • test_chrome作为项目底层文件夹
  • user_data用来存放浏览器数据
    在这里插入图片描述

二、dos命令启动chrome

chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\test_chrome\user_data"
  • 1
  • 注意chrome是否加入到了环境变量中
  • 如果没有,cd 切换到目标启动路径后再执行上面的命令
  • eg:C:\Program Files (x86)\Google\Chrome\Application

三、为快捷方式添加参数

首先把桌面上的chrome的快捷方式,复制到程序底层目录 D:\test_chrome
在这里插入图片描述

修改快捷方式的属性信息,为快捷方式添加启动参数
在这里插入图片描述

  • 在目标后加入cmd当中的参数 –remote-debugging-port=9222 --user-data-dir="./user_data",注意目标里需要与前面chrome.exe直接隔一个空格,否则会报错,目标路径格式不正确之类乱七八糟的,我在这个坑里搞了好久
  • 起始位置为自己的项目路径D:\test_chrome

四、项目启动
如果需要使用selenium进行爬虫,直接在项目底层文件夹下打开这个快捷方式即可
这里相当于手机里的应用双开,与你原先的浏览器是相互隔离的,但是与你的正常浏览器又没有什么区别,会保留所有记录,直接使用selenium 操纵chrome_driver的每次启动都是一个全新的浏览器,相比较而言,这种方法更类似人,对应的也许相比直接驱动更安全

手动启动之后,用selenium接管过来就ok了,后面的模拟操作与之前没两样

接管chrome的代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
# 相当于对你刚刚启动的chrome进行debug  127.0.0.1指本地ip
# 9222是你之前制定的程序端口
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
# 指定自己的chromedriver路径
# 如果和我一样是使用的anconda chromedriver丢在scripts下面可以不用指定
#chrome_driver = "D:/Python/Python37/Scripts/chromedriver.exe" 
driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
print(driver.title)

在这里插入图片描述

Selenium介绍及基本使用方法 Selenium支持多平台、多浏览器、多语言去实现自动化测试,是一个开源和可移植的Web测试框架,支持并行测试执行,从而减少了时间并提高了测试效率。利用它,我们可以编写相关的自动化程序,让程序完全像人一样在浏览器里面操作Web界面,比如模拟鼠标点击、模拟键盘输入等等。不但能够操作Web界面,还能从Web中获取信息,并且相对来说,使用Selenium来获取信息更加简单,它的基本原理是我们编写自动化程序之后利用浏览器驱动直接对浏览器进行操作,只要我们用户能在浏览器上获得的信息使用Selenium都可以获得。 阅读详情

相关推荐

爬虫突破登录壁垒-2:使用cookies

@通过cookies突破登录壁垒 在《壁垒-1》中我们模拟用户名、密码、验证码的方式实现了登录 在其抓包的过程中,我们发现服务端是给我们返回了cookies的,cookies的作用即在于记录用户信息 我们直接把登陆成功后的cookies拿来丢在请求头里,其效果和我们使用用户名密码登录是完全一致的 @将cookies重构为字典,并添加到会话对象中 # 在浏览器中登录,抓包获取的cook

欧阳桫的技术博客 607

selenium还能这么玩:连接手动打开的浏览器

4 行代码就可以selenium连接手工打开的浏览器

分享软件测试技术和学习方法 5081

Python+Selenium安装及环境配置

转自:https://www.cnblogs.com/sandysun/p/7838113.html一、Python安装Window系统下,python的安装很简单。访问python.org/download,下载最新版本,安装过程与其他windows软件类似。记得下载后设置path环境变量,然后Windows命令行就可以调用了:二、Selenium安装Python3.x安装后就默认就会有pip(...

XXLoveSHT的博客 15万+

selenium复用浏览器解决登录问题

以Google浏览器为例: 首先打开cmd,使用命令启动一个Debug监听端口的浏览器 C:\Program Files (x86)\Google\Chrome\Application>chrome --remote-debugging-port=9222 然后在打开的浏览器输入url地址: https://testerhome.com/teams pycharm的中的代码如下: import pytest from time import sleep from selenium i

语语嫣嫣 1万+

GPS定位不准?可能是GDOP在作怪!手把手教你优化卫星几何分布

本文深入解析了GPS定位精度不佳的常见原因——几何精度因子GDOP。通过剖析卫星几何分布对定位误差的放大效应,文章提供了从理解GDOP、PDOP、HDOP等关键指标,到使用专业APP实时诊断卫星天空图,再到利用在线工具提前规划最佳定位时机的完整实战指南。旨在帮助户外爱好者、无人机飞手及专业用户主动优化卫星几何条件,从而显著提升定位可靠性。

weixin_29062823的博客 306

告别手动改代码!用SSC工具5分钟搞定EtherCAT从站动态模块配置(含Excel模板)

本文详细介绍了如何利用SSC工具和Excel模板实现EtherCAT从站动态模块配置的自动化流程。通过零代码修改的动态配置方案,大幅提升工业自动化产线的灵活性和效率,配置时间从平均4小时缩短至8分钟,错误率下降96%。文章包含Excel模板设计、实战演示和避坑指南,助力工程师快速掌握这一高效工具。

weixin_28339967的博客 570

指定浏览器启动端口(Chrome、Firefox、Edge进入调试模式)

指定浏览器启动端口;

qq_41904572的博客 5730

用示波器抓取同步Buck自举电容波形:从充电回路到SW节点振铃的完整分析

本文通过实测TI TPS54561和MPS MPQ4572同步Buck芯片,详细解析了自举电容在充电、维持和放电三个工作阶段的波形特征。重点揭示了电感泄放回路与充电回路重叠时,在SW节点引发的振铃现象及其产生机理,并提供了串联阻尼电阻等有效的工程抑制方法。文章结合示波器实测,为硬件工程师提供了从波形观测到问题调试的完整实践指南。

weixin_29276847的博客 373

Selenium | 控制已打开的浏览器-python-edge

诡异的验证码和微信扫码登录着实让爬虫难堪,那是否可以在已经打开的浏览器基础上,继续运行自动化脚本?通过手工登录后,再让脚本执行程序,这样可以解决很大的一个痛点。

m0_72760466的博客 1万+

保姆级教程:在Win10/Win11上搞定AppScan 10.0.0安装与许可证激活(含常见报错解决)

本文提供AppScan 10.0.0在Win10/Win11上的详细安装与许可证激活指南,涵盖环境准备、分步安装、文件替换技巧及常见报错解决方案。通过专业的安全测试工具部署实践,帮助用户高效完成安装并避免常见陷阱,提升Web应用安全扫描效率。

weixin_30800987的博客 425

华为OD机试真题 新系统 2026-09-06 Python&JS【仓储货物有序出库】

某仓储中心有一个货物堆放区,货物编号按乱序堆叠存放,只能从顶部取货,管理员需要将货物按编号从小到大取出。

MISAYAONE的博客 116

自动化测试工具-selenium介绍及基本使用方法

Selenium支持多平台、多浏览器、多语言去实现自动化测试,是一个开源和可移植的Web测试框架,支持并行测试执行,从而减少了时间并提高了测试效率。利用它,我们可以编写相关的自动化程序,让程序完全像人一样在浏览器里面操作Web界面,比如模拟鼠标点击、模拟键盘输入等等。不但能够操作Web界面,还能从Web中获取信息,并且相对来说,使用Selenium来获取信息更加简单,它的基本原理是我们编写自动化程序之后利用浏览器驱动直接对浏览器进行操作,只要我们用户能在浏览器上获得的信息使用Selenium都可以获得。

顺其自然~专栏 796

[HBM] RAM Cell Self Repair | 内存单元自我修复

对抗错误的大都是冗余,内存颗粒在设计的时候也考虑增加冗余。具体的说:添加冗余或备用的存储单元行和列,及时将测试中的故障进行修复和替换,存储器修复包括行修复,列修复或两者的组合。

串起点滴 785

Python爬虫之基于selenium实现12306模拟登录并成功解决滑块验证出错的情况

Python爬虫之基于selenium实现12306模拟登录(滑块验证),解决滑块验证登录报错的问题。文章很详细,还会有关于登录失败的问题,就登录这个问题,简直不要太简单,跟着我一起来去实现叭!

蜡笔小新星的博客 1万+

利用 Python 构建高效爬虫爬取国家标准文献——从基础到进阶

然而,由于许多标准文献需要从特定网站获取,手动下载既耗时又低效,因此构建自动化爬虫成为一种实用且高效的解决方案。本文从技术选型、网站分析、代码实现到反爬优化,全面讲解了如何爬取国家标准文献。国家标准文献(National Standards Literature)是国家对各领域统一规范的文件,涵盖了技术参数、测试方法、生产工艺等内容。因此,通过自动化爬虫技术进行文献爬取和管理,不仅能解放劳动力,还可以提高数据管理效率。在构建爬虫前,我们需要对目标网站进行分析,包括页面结构、请求方式以及可能的反爬机制。

2201_76125261的博客 2105

099、多摄融合与变焦系统:广角到长焦的无缝切换算法

本文分享了多摄融合与变焦系统开发中的实战经验和关键挑战。作者通过一个旗舰机项目案例,揭示了广角到长焦切换时画面抖动问题的根源——融合算法误将视差当作运动补偿,并提出"视差冻结窗口"的解决方案。文章总结了三大多摄融合难点:物理视差处理、亮度差异补偿和切换时机把控,详细阐述了分层架构设计、融合权重计算等核心技术。同时强调了产线校准的重要性,并给出五项实用建议:允许边缘鬼影保留、参数场景化配置、加强产线检测、完善调试接口,以及合理运用AI技术。全文展现了多摄融合技术在时间、空间和感知维度上的复杂平衡艺术。

sundong_81的博客 48

Selenium入门详细教程+实例演示

详细介绍了selenium的概念,环境搭建以及具体的详细示例和用法,对于每一个重点场景做出了对应的自动化代码测试

zhaolk的博客 3万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

软件测试框架实战:Python+Slenium搭建Web自动化测试框架全教程

Python+Selenium是一种流行的Web自动化测试框架,可以模拟真实的用户操作,对网页进行功能和样式的验证。

软件测试技术交流分享 648

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【自动化测试入门】Selenium基础(建议收藏)

1、什么是Selenium,Selenium是支持Web浏览器自动化的一系列工具和库的综合项目。它提供了扩展来模拟用户与浏览器的交互,用于扩展浏览器分配的分发服务器, 以及用于实现W3C WebDriver规范的基础结构, 该 规范 允许您为所有主要Web浏览器编写可互换的代码。Selenium的核心是WebDriver,这是一个编写指令集的接口,可以在许多浏览器中互换运行。 Selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决Requests无法执行JavaS

myh919的博客 7492

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Selenium超级详细的教程

web自动化测试框架-----Selenium大揭秘 前言 相信搞过Python的人绝大部分都会一点点爬虫技能,但是很多时候爬虫也不是万能的,这个时候就需要我们的自动化测试框架了,于是Selenium就应运而生了,它可以算的上是自动化测试框架中的佼佼者,因为它解决了大多数用来爬取页面的模块的一个永远的痛,那就是Ajax异步加载,今天小编就带大家来好好了解下这个Selenium 。 一、安装与导入 这里我们需要安装三个东西,一个是Selenium框架,还有一个浏览器,最后就是驱动。这里小编选择了谷歌浏览器,下

qq_44326412的博客 6万+

Python使用selenium模拟登录知乎

首先控制selenium模拟请求知乎登录界面:https://www.zhihu.com/signup?next=%2F 但是默认为注册,所以需要控制鼠标来点击上边那个登录按钮,就变成这样了。 然后我们在控制浏览器找到输入用户名、密码的这两个input标签,使用send_keys()来将用户名密码输入进去即可,部分代码如下: 但就在我正要点击登录按钮时问题出现了:验证码 经过测试,知乎的验证...

人生苦短, 还不用Python? 1888

自动化测试工具 —— selenium介绍及基本使用方法

Selenium支持多平台、多浏览器、多语言去实现自动化测试,是一个开源和可移植的Web测试框架,支持并行测试执行,从而减少了时间并提高了测试效率。利用它,我们可以编写相关的自动化程序,让程序完全像人一样在浏览器里面操作Web界面,比如模拟鼠标点击、模拟键盘输入等等。不但能够操作Web界面,还能从Web中获取信息,并且相对来说,使用Selenium来获取信息更加简单,它的基本原理是我们编写自动化程序之后利用浏览器驱动直接对浏览器进行操作,只要我们用户能在浏览器上获得的信息使用Selenium都可以获得。

kk_lzvvkpj的博客 2480

学习笔记 -- 用python中的selenium模拟知乎登录

文章目录前言一、模拟知乎登录的准备二、登录验证码的问题1.英文验证码2.中文倒立文字验证码三.完整代码如下总结 前言 最近在学习python爬虫,为了巩固爬虫的知识,偶尔会写一些简单的脚本来加强对语法的熟练度。 一、模拟知乎登录的准备 因为知乎的防爬机制会识别selenium,所有我们不能直接实例化浏览器对象,可以通过接管已经打开的浏览器进行账户的输入。 系统环境变量:在path中添加chrome浏览器的路径 在cmd中输入以下命令启动浏览器 chrome.exe --remote-debuggin

低调の小黄蜂的博客 783

Remote Debugging 远程调试 那些事儿

大本营在此:https://developers.google.com/chrome-developer-tools/docs/remote-debugging、 关键信息1:谷歌把remote debugging做成协议提交到webkit了,所以基于webkit的浏览器都可以用了,而且用法基本一样。 关键信息2:Google Dev Tools都是HTML,JS和C...

aio69762的博客 1912

命令提示符中添加chrome.exe --remote-debugging-port=9222 --user-data-dir=“D:\selenium_data“

命令提示符中输入: chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\selenium_data" 并在python中输入, option.add_experimental_option("debuggerAddress", "127.0.0.1:9222") 可是实现使用selenium对当前打开的chrome界面进行接管 ...

qq_42015021的博客 1万+
上一篇: 修改其他函数的功能的神器——python装饰器
下一篇: 用Python解决女朋友看电影没字幕的需求
Python_sn
博客等级 码龄6年 324粉丝 290原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值