码迷,mamicode.com
首页 > 编程语言 > 详细

python爬虫登陆问题

时间:2019-07-12 23:37:30      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:方法   get   相同   解决方法   from   出现   com   size   自己   

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

1、导入库

import requests
from selenium import webdriver

2、根据腾讯课堂链接,进入页面,获取页面中登陆的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()
driver.find_element_by_xpath(/html/body/div[4]/div/div[2]/div[2]/a[1]).click()

driver.switch_to_frame("login_frame_qq")//引号中添加frame标签中的name或id值
driver.find_element_by_xpath(//*[@id="switcher_plogin"]).click()
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()

 

python爬虫登陆问题

标签:方法   get   相同   解决方法   from   出现   com   size   自己   

原文地址:https://www.cnblogs.com/qing0228/p/11178958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!