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

  

最新文章

  1. [LeetCode] Lexicographical Numbers 字典顺序的数字
  2. Redis学习和环境搭建
  3. EditText光标颜色设置
  4. ajax浅析---ScriptManagerProxy
  5. 手机web站点和手机app 技术选型的困惑于思考
  6. [问题2014S06] 解答
  7. Hibernate的Restrictions用法
  8. hadoop 2.0 lzo 问题
  9. Unity3D知识点
  10. BZOJ 3038 上帝造题的七分钟2 (并查集+树状数组)
  11. 定位(position)
  12. 工艺成型及仿真、铸造工艺及仿真ProCAST软件入门认识介绍
  13. simple-spa 一个简单的单页应用实例
  14. layui loading
  15. js replaceAll全部替换
  16. Atcoder Grand 011 C - Squared Graph
  17. UVALive 6467
  18. SSH命令详解2
  19. 2018.4.23 linux系统
  20. STM32F4: GENERATING A SINE WAVE

热门文章

  1. react基本语法及组件
  2. 微信小程序搜索框代码组件
  3. 配置vue项目将打包后图片文件的引用路径改为cdn路径?
  4. 刷题记录:[CISCN2019 华北赛区 Day1 Web1]Dropbox
  5. hdu1002 A + B Problem II[大数加法]
  6. ubuntu之路——day17.2 RGB图像的卷积、多个filter的输出、单个卷积层的标记方法
  7. IDEA实现SpringBoot热部署
  8. js中isNaN和Number.isNaN的区别
  9. SQLSERVER根据提成比率区间计算业绩提成
  10. SQLServer数据库之SQL Server 获取本周,本月,本年等时间内记录