python实战项目 — selenium登陆豆瓣
利用selenium 模仿浏览器,登陆豆瓣
重点:
1. 要设置好 chromedriver配置与使用, chromedriver.exe 和 Chrome的浏览器版本要对应, http://chromedriver.storage.googleapis.com/index.html
2. Js代码写完可以在浏览器F12的控制台交互测试一下
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.douban.com/')
driver.implicitly_wait(1)
# 切换iframe子框架
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
# 最大化窗口
driver.maximize_window()
# 点击密码登录的标签
driver.find_element_by_css_selector('li.account-tab-account').click()
# 输入账号之前清理默认的字符
driver.find_element_by_id('username').clear()
driver.find_element_by_id('username').send_keys('17620xxxxx')
driver.find_element_by_id('password').clear()
driver.find_element_by_id('password').send_keys('123456@#')
# 点击‘登录豆瓣’按钮
# 这里需要注意,当元素的class属性有好几个的时候,此函数的参数填class的第一个就好
# 元素的class属性:btn btn-account
driver.find_element_by_class_name('btn').click()
time.sleep(2)
# 向下滚动10000像素,JS写法,可以直接在F12控制台做交互测试代码准确性
js = 'document.documentElement.scrollTop=10000'
#js = 'var q=document.documentElement.scrollTop=10000'
driver.execute_script(js)
driver.implicitly_wait(5)
# 停2秒后,抓取快照
driver.save_screenshot('D:\\douban.jpg')
# 保存源码
with open('D:\\douban_shouye.html', 'w', encoding='utf-8') as f:
f.write(driver.page_source)
driver.quit()
print('wanle')

浙公网安备 33010602011771号