python爬虫登录网页版腾讯课堂

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

一、导入库web

import requests from selenium import webdriver

二、根据腾讯课堂连接,进入页面,获取页面中登录的xpath,并进行点击操做。浏览器

  获取xpath的方法是:在如上所示箭头所指登录位置右击操做,点击检查,获取如下页面。在登录所在标签处右击进行复制xpath。框架

driver = webdriver.Chrome() driver.get("https://ke.qq.com/course/403521") driver.find_element_by_xpath('//*[@id="js_login"]').click()

三、进入登录页面以后获取登录方式,本次选择使用qq进行登录,获取qq登录的xpath并进行点击操做。spa

driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[2]/a[1]').click()

四、点击使用帐号密码登录。在该登录过程当中出现如下错误。3d

  主要缘由是没法找到咱们定位的xpath,须要先找到定位元素所处的frame,并从frame中寻找该元素。code

 

 

driver.switch_to_frame("login_frame_qq")//引号中添加frame标签中的name或id值 driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click()

五、获取到输入帐号密码以及登录位置的xpath。当运行时再次出现定位不到xpath的状况,使用第四步的方法依旧没能成功,提示所在框架不对,估计是跟第4步的frame标签的name相同的缘由吧。最后的解决方法是:先回到最外层框架,以后进入要定位元素的框架,最后对帐号密码进行定位。htm

 

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("输入本身的密码")

六、点击登录按钮,至此就已经进入网页版的腾讯课堂了。blog

driver.find_element_by_xpath('//*[@id="login_button"]').click()

 完整代码以下:element

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时间,确保页面已经更新。若有问题,欢迎批评指正,谢谢。

相关文章
相关标签/搜索