根据腾讯课堂网页登陆问题进行解说(需要安装谷歌浏览器):

1、导入库

 --------------------------------------------------------------------注:如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:895817687--------------------------------------------------------------------import requestsfrom 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 webdriverdriver = 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爬虫登陆网页版腾讯课堂相关推荐

  1. python爬虫解决网页重定向问题

    python爬虫解决网页重定向问题 参考文章: (1)python爬虫解决网页重定向问题 (2)https://www.cnblogs.com/zhumengke/articles/9618368.h ...

  2. python Chrome + selenium自动化测试与python爬虫获取网页数据

    一.使用Python+selenium+Chrome 报错: selenium.common.exceptions.SessionNotCreatedException: Message: sessi ...

  3. python爬取网页版QQ空间,生成词云图、柱状图、折线图(附源码)

    python爬取网页版QQ空间,生成词云图.柱状图.折线图 最近python课程学完了,琢磨着用python点什么东西,经过一番搜索,盯上了QQ空间,拿走不谢,欢迎点赞收藏,记得github给个sta ...

  4. Python爬虫: 单网页 所有静态网页 动态网页爬取

    Python爬虫: 单网页 所有静态网页 动态网页爬取 前言:所有页代码主干均来自网上!!!感谢大佬们. 其实我对爬虫还挺感兴趣的,因为我玩instagram(需要科学上网),上过IG的人都知道IG虽 ...

  5. 微信公众号开发-java版 腾讯课堂(开发接入)

    微信公众号开发-java版 腾讯课堂 微信测试号申请地址: 微信二维码直接扫描登录 1.新建web项目 2.内网穿透映射公网ip  (免费隧道需要支付宝实名认证) 3.微信接入验证签名 TOKEN自己 ...

  6. Python爬虫获取网页编码格式

    Python爬虫获取网页编码格式 网页编码格式是每个网页规定的本页面文字的编码方式,其中比较流行的是ascii, gbk, utf-8, iso等.观察许多网页的编码格式都是在meta标签的conte ...

  7. Python爬虫(4)网页信息

    Python爬虫(4)浅谈js JavaScript(简称"JS") 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言.虽然它是作为开发Web页面的脚本语言而出名,但是它也 ...

  8. (干货)你知道python爬虫定位网页元素有几种方式嘛,今天带你一一了解。

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:拓荒者 ( 想要学习Python?Python学习交流 ...

  9. python爬虫登陆教程_(python模拟登陆教程)python爬虫模拟登录是什么意思

    python爬虫模拟登录是什么意思 网站需要登录后才能所需要的信息,此时可以设计爬虫进拟登录,原理是利用浏cookie. 一.浏览器访问服务器的过程: (1)浏览器(客户端)向Web服务器发出一个HT ...

最新文章

  1. SSH-publickey
  2. python xpath语法-Python爬虫之XPath语法
  3. 多个VSTO解决方案间传输变量
  4. Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署
  5. Bochs调试Linux内核 - 定位内核中的变量或数据结构
  6. Qt 互斥锁 QMutex 的简单应用
  7. Centos Another app is currently holding the yum lock
  8. Spring Framework总览面试题精选
  9. mysql 查询数据库名是否存在_SQL查询数据库是否存在
  10. Storm之路-WordCount-实例
  11. nginx低版本不支持pathinfo模式,thinkphp针对此问题的解决办法
  12. [经验]修改SDI主窗口Title
  13. linux下怎么解压tar.gz,linux下怎么解压.tar.gz .tar.bz2命令
  14. 2007年10月-2010年5月QQ说说回顾
  15. 停车场管理(C语言版)
  16. 【图形图像处理】之栅格化介绍
  17. 数据可视化 - 什么是数据可视化
  18. 【演示文稿制作软件】Focusky教程 | 利用动画角色让演示文稿更生动
  19. 没有比这个更详细的Elasticsearch教程
  20. http 4xx,5xx Server error

热门文章

  1. 【PostgreSQL+PostGIS离线安装】2天的踩坑及问题解决经验分享(含安装文件postgresql-9.5.9+postgis-2.2.3+多个依赖及测试SQL)
  2. SpringBoot注解自动扫描-底层实现
  3. Java根据日期计算时间差
  4. 设计模式——装饰者(Decorator)模式DEMO——成绩汇报的装饰者模式实现
  5. 《数据结构与算法》课程设计任务书——赫夫曼编码/译码器
  6. HDU1237 简单计算器
  7. 处女座的百日理财计划
  8. Salem and Sticks
  9. 【算法学习笔记】二叉树的基本操作实现和应用举例,根据先序与中序遍历建立二叉树的实现
  10. Uncaught (in promise) Error: Request failed with status code 500