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')