本文主要是介绍python+Selenium 模拟登陆豆瓣6.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
新版豆瓣在登陆窗口内嵌了一个iframe,所以采用selenium模拟登陆的时候,不能直接定位到登陆的输入框。关于iframe的具体介绍可以百度,简单的说就是在网页内嵌入另一个网页,采用右键查看源代码是没办法检索iframe里面的代码的。在python里实现模拟登陆,需要先定位到iframe框架,再跳转到框架内对表单元素进行定位。
**这里讲一下模拟登陆的思路:**
1.采用webdriver的get方法打开网页
2.选择用密码进行登陆(定位+点击)
3.在inputtag输入用户名及密码(定位+输入),点击记住登陆状态按钮(定位+点击)
4.登陆(定位+点击登陆按钮)
下面是代码:
from selenium import webdriver# chromedriver所在目录
driver_path = r'C:\Users\PycharmProjects\spyder\selenium package\chromedriver.exe'
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('https://www.douban.com/')# 找到登陆框架
iframe = driver.find_element_by_tag_name('iframe')
# 跳转到登陆框架
iframe = driver.switch_to.frame(iframe)# 定位并点击【密码登陆】
psw_botton = driver.find_element_by_xpath('//li[contains(@class,"account-tab-account")]')
psw_botton.click()# 定位并输入用户名
input1 = driver.find_element_by_name('username')
input1.send_keys('输入你的手机号或邮箱***')# 定位并输入密码
input2 = driver.find_element_by_name('password')
input2.send_keys('输入你的密码***')# 定位并点击【下次自动登录】
remember_botton = driver.find_element_by_id('account-form-remember')
remember_botton.click()# 登陆
login_botton = driver.find_element_by_xpath('//a[contains(@class,"btn-account")]')
login_botton.click()
然后会跳转到登陆后的页面~
这篇关于python+Selenium 模拟登陆豆瓣6.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!