登录流程:
- 实例化一个driver,然后driver.get()发送请求
- 最重要的:切换iframe子框架,因为豆瓣的网页中的登录那部分是一个ifrme,必须切换才能寻找到对应元素
- 利用selenium切换到账号密码登录
- 利用selenium输入账户和密码
- 利用selenium点击登录按钮
- 然后利用字典推导式保存了一下cookie
代码实现:
1 import time
2 from selenium import webdriver
3
4 # 实例化driver
5 driver = webdriver.Chrome()
6 driver.get('https://www.douban.com/')
7 ## 切换iframe子框架
8 driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
9
10 driver.maximize_window() # 最大化窗口
11 driver.find_element_by_css_selector('li.account-tab-account').click() # 点击密码登录的标签
12 driver.find_element_by_id('username').send_keys('13343396443')
13 driver.find_element_by_id('password').send_keys('lilei120400')
14 # 点击‘登录豆瓣’按钮
15 # 这里需要注意,当元素的class属性有好几个的时候,此函数的参数填class的第一个就好
16 driver.find_element_by_class_name('btn').click() # 元素的class属性:btn btn-account
17 # 获取cookies,字典推导式
18 cookies = {i['name']: i['value'] for i in driver.get_cookies()}
19 print(cookies)
20
21 time.sleep(5)
22 driver.quit() # 退出浏览器