Python自动登录网页网易云音乐
目标:在网页版网易云,以qq登录的方式,通过Python代码实现自动登录
在实现过程中,关键的有2步:
1.在打开的页面中点击链接,打开了新页面。driver需要重定向到新页面,直接定位新界面的元素会提示,“定位失败,没有这个元素”。
解决方法:获取当前浏览器所有句柄页,根据句柄页的值进行转换。
windows = driver.window_handles # 获取当前浏览器所有的页面句柄
windows的类型为list,通过windows[num]调用 。
关于句柄页、句柄值查阅了一些博客都分别说了一部分,没有对比的讲解,要做页面切换,先要搞清这两个的概念,否则直接生搬硬套,可能就会犯我执行时的错误:用句柄值去切换页面。以下是我的个人理解。
如果每次在新打开的标签页上点击链接打开下一个标签页,标签页顺序:1 2 3 4,句柄页的值为:0 1 2 3,关闭标签页4,在标签页3上点击其他链接打开一个新页面,句柄页的值仍为0 1 2 3,代表第1 2 3 4个标签页。
search_handle = driver.current_window_handle # 获取当前句柄页的句柄值
当前标签页的句柄值search_handle的值为:
CDwindow-0275C98CCBB9287B39FF9BB1B1501C3E,这种风格。
所以务必分清,句柄页的值是代表第(x+1)个标签页,句柄值是一串数字。
切换标签页,先获取所有页面句柄,再通过driver.switch_to.window()进行切换。
获取当前页面的句柄值,采用 变量名 = driver.current_window_handle
引用博客:selenium中webdriver跳转新页面后定位置新页面的两种方式 - L-Jason - 博客园
2.新页面中嵌套元素的定位
定位账号密码登录时,对 href = "javascript:void(0)" 用了link text,xpath,css selector,模糊查询都无法定位到这个元素,通过查阅博客发现这是个frame嵌套元素,定位解决方法如下:
driver.switch_to.frame('ptlogin_iframe') # 目标是iframe嵌套元素,使用对应的函数
driver.find_element('id','switcher_plogin').click() # 根据元素id定位
引用博客:QQ邮箱自动登录问题--frame嵌套元素定位_Taxus_shan的博客-CSDN博客
到这里,最关键的2个问题全部都已经解决,细节问题:当新打开的标签页没有完全加载好时,切换标签页、在新标签页上定位元素都可能失败、报错,所以要留出等待的时间。
下面为完整代码:
# 1.导包+设置用户名、密码
from selenium import webdriver
from time import sleep
# 设置用户名和密码,此处建议以读文件方式拿到账号、密码
username = (QQ账号)
password = 'QQ密码'
# 2.创建一个webdriver服务端
driver = webdriver.Chrome()
# 3.获取url
driver.get('http://music.163.com')
driver.maximize_window()
sleep(1)
# 4.点击登录
driver.find_element('link text','登录').click()
sleep(1)
# 5.选择其他登录方式
driver.find_element('link text','选择其他登录模式').click()
# 6.定位到协议前的label控件,点击勾选
driver.find_element('xpath','//*[@id="j-official-terms"]').click()
# 7.链接文字定位到qq登录
driver.find_element('link text','QQ登录').click()
sleep(5)
# 8.定位到新页面,点击账号密码登录
windows = driver.window_handles # 获取当前浏览器所有的页面句柄
driver.switch_to.window(windows[1]) # 跳转到第二个页面
driver.switch_to.frame('ptlogin_iframe') # 目标是嵌套元素,使用对应的函数
driver.find_element('id','switcher_plogin').click() # 根据元素id定位
# 9.定位到账号密码输入框,并发送信息后,点击登录
driver.find_element('xpath','//input[@id="u"]').send_keys(username) # 输入用户名
driver.find_element('xpath','//input[@id="p"]').send_keys(password) # 输入密码
driver.find_element('xpath','//*[@id="login_button"]').click() # 点击“登录”按钮
# 时停3s
sleep(3)
driver.quit()
Python自动登录网页网易云音乐相关推荐
- python网易云_用python爬虫爬取网易云音乐
标签: 使用python爬虫爬取网易云音乐 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页版找一下你想要听的歌曲点击进去.按键盘F12打开网页调试工具,点击Ne ...
- python爬虫爬取网易云音乐下载_Python爬虫实践-网易云音乐!没有版权又如何!照样爬取!...
1.前言 最近,网易的音乐很多听不到了,刚好也看到很多教程,跟进学习了一下,也集大全了吧,本来想优化一下的,但是发现问题还是有点复杂,最后另辟捷径,提供了简单的方法啊! 本文主要参考 python编写 ...
- python爬虫----爬取网易云音乐
使用python爬虫爬取网易云音乐 目录 使用python爬虫爬取网易云音乐 需要使用的模块 开始工作 运行结果 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页 ...
- Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)
Python 数据分析初探项目 基于 Python 数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022 年) Python 数据分析初探项目 基于 Python 数据可 ...
- python 批量爬取网易云音乐,java解密
每天一点点,记录学习 python 批量爬取网易云音乐 网易云音乐,排行榜,右键,显示网页源代码,并不能找到任何一首歌的id,是因为java加密了 随便找一首id为1374061038的歌,在网页源代 ...
- 计算机毕业设计Python+uniapp+安卓仿网易云音乐客户端APP(WEB+APP+LW)
计算机毕业设计Python+uniapp+安卓仿网易云音乐客户端APP(WEB+APP+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区 ...
- python爬取网易云音乐_我用Python爬取了网易云音乐
原标题:我用Python爬取了网易云音乐 来源:别动我的猫尾巴 headers需要进行修改,headers设置不对会被屏蔽导致爬取不成功.一个headers用久了也会爬取不成功 代码如下: impor ...
- python爬取网易云歌单_详解python selenium 爬取网易云音乐歌单名
目标网站: 首先获取第一页的数据,这里关键要切换到iframe里 打印一下 获取剩下的页数,这里在点击下一页之前需要设置一个延迟,不然会报错. 结果: 一共37页,爬取完毕后关闭浏览器 完整代码: u ...
- python爬虫爬取网易云音乐歌曲_Python网易云音乐爬虫进阶篇
image.png 年前写过一篇爬网易云音乐评论的文章,爬不了多久又回被封,所以爬下来那么点根本做不了什么分析,后面就再改了下,加入了多线程,一次性爬一个歌手最热门50首歌曲的评论,算是进阶版了- 思 ...
最新文章
- 姚期智担纲,清华今日成立量子信息本科班!“着眼学术尖端,致力国家战略需求“...
- Python 3.10的几个好用的新特性
- JavaScript常用基础算法
- 在GridView里使用上下箭头(小键盘旁边)来选择记录
- python 创建类_python 用type()创建类
- 身材太好的女生在职场中有哪些劣势?
- Scrapy框架学习(二)
- C语言编程题:完美的素数
- JSP设置网站favicon.ico
- 算法:根据四色定理(Four color theorem),求出地图的所有着色方案
- 最简单的迁徙图实现demo
- Python练习——L1-051 打折 (5分)
- linux下启动node服务出现events.js:167 throw er; // Unhandled ‘error‘ event 的解决方法
- 视频相关的hls协议、VLC播放器、m3u文件的播放
- 这是一个关于女码农减肥的思考
- 教你如何把视频转成序列图片的实用技巧
- 【STM32F407VET6开发】第三章 jpeg编解码实验(有误,待修改)
- 零基础该怎么去学3D游戏建模?
- 研究生复试------3.找圆心
- 可视化实时监控系统echarts图