python爬虫登陆问题
根据腾讯课堂网页登陆问题进行解说(需要安装谷歌浏览器):
1、导入库
import requests
from selenium import webdriver
2、根据腾讯课堂链接,进入页面,获取页面中登陆的xpath,并进行点击操作。
获取xpath的方法是:在如上所示箭头所指登陆位置右击操作,点击检查,获取以下页面。在登陆所在标签处右击进行复制xpath。
driver = webdriver.Chrome()
driver.get("https://ke.qq.com/course/403521")
driver.find_element_by_xpath('//*[@id="js_login"]').click()
3、进入登陆页面之后获取登陆方式,本次选择使用qq进行登陆,获取qq登陆的xpath并进行点击操作。
driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[2]/a[1]').click()
4、点击使用账号密码登陆。在该登陆过程中出现以下错误。
主要原因是无法找到我们定位的xpath,需要先找到定位元素所处的frame,并从frame中寻找该元素。
driver.switch_to_frame("login_frame_qq")//引号中添加frame标签中的name或id值
driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click()
5、获取到输入账号密码以及登陆位置的xpath。当运行时再次出现定位不到xpath的情况,使用第四步的方法依旧没能成功,提示所在框架不对,估计是跟第4步的frame标签的name相同的原因吧。最后的解决方法是:先回到最外层框架,之后进入要定位元素的框架,最后对账号密码进行定位。
driver.switch_to.default_content()//回到最外层框架
driver.switch_to_frame("login_frame_qq")//进入定位元素的框架
driver.find_element_by_xpath('//*[@id="u"]').clear()
driver.find_element_by_xpath('//*[@id="u"]').send_keys("输入自己的账号")
driver.find_element_by_xpath('//*[@id="p"]').clear()
driver.find_element_by_xpath('//*[@id="p"]').send_keys("输入自己的密码")
6、点击登陆按钮,至此就已经进入网页版的腾讯课堂了。
driver.find_element_by_xpath('//*[@id="login_button"]').click()
完整代码如下:
import requests
from selenium import webdriver driver = webdriver.Chrome()
driver.get("https://ke.qq.com/course/403521")
driver.find_element_by_xpath('//*[@id="js_login"]').click()
time.sleep(5)//等待响应
driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[2]/a[1]').click()
time.sleep(2)
driver.switch_to_frame("login_frame_qq")//引号中添加frame标签中的name或id值
driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click()
time.sleep(2)
driver.switch_to.default_content()//回到最外层框架
driver.switch_to_frame("login_frame_qq")//进入定位元素的框架
driver.find_element_by_xpath('//*[@id="u"]').clear()
driver.find_element_by_xpath('//*[@id="u"]').send_keys("输入自己的账号")
driver.find_element_by_xpath('//*[@id="p"]').clear()
driver.find_element_by_xpath('//*[@id="p"]').send_keys("输入自己的密码")
driver.find_element_by_xpath('//*[@id="login_button"]').click()
本次实验使用的是Jupyter进行的分段操作,如果合并代码进行实验应改变sleep时间,确保页面已经更新。如有问题,欢迎批评指正,谢谢。
python爬虫登陆问题的更多相关文章
- Python 爬虫模拟登陆知乎
在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...
- python爬虫模拟登陆
python爬虫模拟登陆 学习了:https://www.cnblogs.com/chenxiaohan/p/7654667.html 用的这个 学习了:https://www.cnblogs.co ...
- Python模拟登陆新浪微博
上篇介绍了新浪微博的登陆过程,这节使用Python编写一个模拟登陆的程序.讲解与程序如下: 1.主函数(WeiboMain.py): import urllib2 import cookielib i ...
- python爬虫成长之路(一):抓取证券之星的股票数据
获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所 ...
- python爬虫学习(7) —— 爬取你的AC代码
上一篇文章中,我们介绍了python爬虫利器--requests,并且拿HDU做了小测试. 这篇文章,我们来爬取一下自己AC的代码. 1 确定ac代码对应的页面 如下图所示,我们一般情况可以通过该顺序 ...
- python爬虫学习(6) —— 神器 Requests
Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写,真正的为人类着想. Python 标准库中的 urllib2 模块提供了你所需要的大多数 H ...
- python爬虫学习 —— 总目录
开篇 作为一个C党,接触python之后学习了爬虫. 和AC算法题的快感类似,从网络上爬取各种数据也很有意思. 准备写一系列文章,整理一下学习历程,也给后来者提供一点便利. 我是目录 听说你叫爬虫 - ...
- [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时 ...
- python爬虫抓网页的总结
python爬虫抓网页的总结 更多 python 爬虫 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自 ...
随机推荐
- EF ModelFirst 步骤
1 新建实体数据模型 ,选择空模型 2 建各个实体,并指定各字段属性,字符串需要指定长度 3 添加关系,选择关系类型,勾选添加外键 4 新建空的数据库,然后在edmx文件的空白处点右键,选择从模型生成 ...
- 数据在数组中存储的顺序:小端 OR 大端模式 详解
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放: 小端模式,是指数据的高 ...
- HTTP协议入门(一)- 版本
当我们在浏览器的地址栏输入URL后,信息会被发送到WEB服务器,服务器得到响应,将数据传输回来,展示到WEB页面上,这其中的传输方法就是HTTP协议. 一.HTTP 0.9 发布于1991年,是首个H ...
- ELINK离线编程器常见问题
Q1 编程器是否可以接JTAG JTAG接口已经包含SWD接口引脚,按以下引脚对应接线即可: SWDIO->目标板JTAG 的JTMS SWCLK->目标板JTAG 的JTCK Q2 PC ...
- imp dll时遇见的非常恶心的问题
我需要导入dll库中这样一个函数VM661JTCPDLL_API int admin_login(sel_admin_ret* sel_admins, int num, char* admin_nam ...
- Windows 10预装应用太多?一个命令删除!
Windows 10预装了很多应用软件,虽然有些其实也不难用,但是使用率可能比较低,很多人也不喜欢预装的东西,而且还占空间,那么这些预装的如何彻底清除呢? 其实微软是自带了命令可以执行这样的操作,用它 ...
- 实现dropdownList 无刷新
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptMana ...
- C#WebBroswer控件的使用
在WebBroswer中可以嵌入一个网页文件,通过Url属性绑定. URI,统一资源标识符,用来唯一的标识一个资源. URL,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源. 它包 ...
- 百度 Echarts 地图表 js 引用路径
使用地图表格,除了需echarts,还需zrender,自行下载JS文件: 目标,做成这样的效果:http://echarts.baidu.com/doc/example/map3.html ...
- Web页面制作之开发调试工具
直击现场 <HTML开发MacOSApp教程> http://pan.baidu.com/s/1jG1Q58M 开发工具介绍 开发工具一般分为两种类型:文本编辑器和集成开发环境(IDE) ...