首页 > 知识百科 > 正文

100天精通Python(实用篇脚本)——第117天:基于selenium实现反爬策略之代码输入账号信息登录网站原创

文章目录

专栏导读1.前言2.实现步骤3。基础补充 4.代码实战4.1 创建隐藏连接4.2 添加请求头加密浏览器4.3 指纹器4.4 最大化窗口4.5 启动网页4.6 点击密码登录4.7 输入账号密码4.8 点击登录按钮4.9 完整代码4.10 GIF动图展示五、总结

专栏导读

🔥🔥文章已收录《100 《天掌握Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2023035055/category_11466020.html

优点订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬群体可以抱团取暖(大厂内推机会)专栏福利简历指导、招聘内推、每周全送实体书、80G栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等

1。前言

我们通过cookie登录网站学习了,接下来我们来学用代码输入账号信息登录网,测试网站某宝。

2.实现步骤

下面是某宝的登录界面,接下来我们需要实现的步骤是:

1、打开网页2、输入账号信息3、输入密码信息4、点击“登录”按钮

3.基础补充

由于某宝的反爬技术超,这里我们需要用到网页元素定位操作隐藏浏览指纹器,还不会的小伙伴学习一下专栏文章:

100天精通Python(爬虫篇)——第47天:selenium自动化操作浏览器(基础+代码实战)100天精通Python(实用脚本篇)——第115天:基于selenium实现反爬策略之隐藏浏览器指纹特征

4.代码实战

4.1创建连接

来自 selenium 导入 webdriver来自 seleniumwebdriver常见导入导入时间# 1.创建连接#创建ChromeOptions对象,用于配置Chrome浏览器的选项chrome_options = webdriverChromeOptions()#添加启动参数,'--disable-gpu'参数用于禁用GPU加速,适用于部分平台上面的兼容性问题chrome_options.add_argument('- -disable-gpu')

4.2添加请求头加密浏览器

通过添加请求头伪装成正常的浏览器信息:

# 2.添加请求头伪装浏览器chrome_options.add_argument( 'user-agent =Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/103.0.0.0 Safari/537.36')驱动程序= webdriverChrome(chrome_options=chrome_options)

4.3 浏览隐藏器指纹

执行stealth.min.js文件进行浏览隐藏器指纹特征:

 # 3.执行`stealth.min.js`文件进行隐藏浏览指纹器with 打开('stealth.min.js') as f: js = f读取()驱动程序execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { "源"< span class="d928-548c-71ec-0ffc token punctuation">: js})

4.4 最大化窗口

为了方便大家看登录操作,设置浏览器全屏:

# 4.最大化浏览器窗口driver.maximize_window()

4.5启动网页

 # 5. 发送请求,打开网页driver.get('https://login.taobao.com/member/login.jhtml')时间睡眠(1)

4.6 点击密码登录

1、有时候打开某宝的登录界面,它会让我们扫码登录,这时候我们就需要点击密码登录:


2、这个标签有js,本想通过执行js点击元素,结果发现执行不成功也不报错(原因未知大家可以自行尝试下),所以选择定位xpath:

元素的xpath地址:

//div[@class='登录-blocks qrcode-bottom-links']/a [1]

3、通过find_element方法定位元素的xpath,由于这个界面是有错误触发,所以写一个异常捕获防止报错,通过click()方法点击元素:

# 6.点击账号密码登录试试: #找到登录按钮元素按钮 = driver.find_element(by=By.XPATH,= "//div[@class='71ec-0ffc-6fb5-1012 login-blocks qrcode-bottom-links']/a[1]") # 点击登录按钮按钮点击() 除了 pass

4.7 输入账号密码

注意事项:有ID找ID(ID是唯一的),没ID找ID其他标签

1、确定账号、密码输入框的标签信息:

账号框ID为:

fm-登录-< span class="38c9-aea6-23de-35c7 tokenbuiltin">id

密码框ID为:

fm-登录-密码

2、通过find_element< /code>方法定位文本框,通过send_keys方法输入账号信息:

# 7.输入账号密码username_input = driver.find_element(=ID,="fm-login-id") #定位账号框username_input.send_keys( "your_username") # 输入账号信息(这里自行)替换)password_input = driver.find_element(=ID="fm-login-password") #定位密码框password_input .send_keys("your_username") # 输入密码信息(这里自行替换)

4.8 点击登录按钮

1、刚开始尝试,用这个登录按钮类ID定位,但是代码无法定位成功,所以还是选择xpath定位:


登录按钮xpath地址:

//按钮[@class ='fm-button fm-submitpassword-login']

2、通过find_element方法定位xpath,通过click()方法点击元素:

# 8. 点击登录按钮元素login_button = 司机.find_element(=.XPATH, value="//按钮[@class='0ffc-6fb5-1012-45b4 fm-button fm-submitpassword-login']")#点击登录按钮login_button点击() 

4.9 完整

下面代码是完整登录代码,需要替换自己的账号密码

来自 selenium 导入 webdriver来自 selenium .webdriver.通用.通过 导入 通过导入时间# 1.创建链接#ChromeOptions对象,用于配置Chrome浏览器的选项chrome_options = webdriver.ChromeOptions()#添加启动参数, '--disable-gpu'参数用于禁用GPU加速,适用于部分平台上的兼容问题chrome_options.add_argument('--disable-gpu') # 2.添加请求头加密浏览器chrome_options.add_argument( 'user-agent=Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko) Chrome/103.0.0.0 Safari/537.36')driver = webdriverChrome(chrome_options=chrome_options)# 3.执行`stealth.min.js`文件进行隐藏浏览器指纹with 打开('stealth.min.js'< span class="38c9-aea6-23de-35c7 token punctuation">) as f: js = f阅读()驱动程序execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {

我要评论

Copyright © 2012-2023 普诚元亨工作室 版权所有

*本站部分网页素材及相关资源来源互联网,如有侵权请速告知,我们将会在24小时内删除*

Z-BlogPHP 1.7.3 琼ICP备2022020219号