selenium爬虫是一种比较实用的爬虫手段,对于量比较小的数据,selenium相对于其他爬虫方法更加简单、实用。

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
import time
# help(webdriver)browser = webdriver.Chrome(executable_path="E:\learning\chromedriver.exe")
browser.get("https://www.duifene.com/Home.aspx")
#隐式等待
browser.implicitly_wait(10)#主页登录
browser.find_element_by_id('btnLogin').click()
browser.find_element_by_id('topLogin_tbLoginName').send_keys('你的账号')
browser.find_element_by_id('topLogin_tbPassword').send_keys('你的密码')
browser.find_element_by_class_name('btnlogin').click()# 点击在线练习
# #加入睡眠时间,防止元素未加载导致无法找到的情况
time.sleep(5)
#模拟鼠标悬停,selenium无法操作不可见的区域
show_btn=browser.find_elements_by_class_name('panel')[0]
ActionChains(browser).move_to_element(show_btn).perform()
op=browser.find_elements_by_class_name('divBlock')[7]
op.click()#循环每个章节,获取内容
time.sleep(5)
chaps=browser.find_elements_by_class_name('score')
print('章节数为:%s' % str(len(chaps)))
length=len(chaps)
for i in range(length):# time.sleep(5)#滚动页面,使元素始终位于可见位置js='window.scrollTo(0,'+str(i*75)+')'browser.execute_script(js)chaps = browser.find_elements_by_class_name('score')chaps[i].click()paperName=browser.find_element_by_id('paperName').textallIndex=int(browser.find_element_by_id('allIndex').text)print(paperName)for j in range(allIndex):#获取题目js1='window.scrollTo(0,document.body.clientHeight)'browser.execute_script(js1)title=browser.find_element_by_id('divSubjectName').textprint("%d.%s" %(j+1,title))#获取选项及答案items=browser.find_element_by_id('divSubjectItem').textprint(items)if j==allIndex-1:breaknext=browser.find_element_by_id('next').click()#print('url:%s name:%s' %(browser.current_url,browser.name))browser.back()time.sleep(5)#关闭
browser.close()

selenium学习参考链接:【python爬虫从入门到放弃(八)之 Selenium库的使用 - python修行路 - 博客园】

selenium爬虫入门简单实例(获取对分易习题)相关推荐

  1. python爬虫入门心得体会,python爬虫入门和实例

    爬虫不外乎是为了获取网络上的信息,要取得信息,你就得给给服务器发请求,然后服务器把信息发给你,这一步一般较为简单.服务器发给你的一般是一个html文件,拿到文件后,你可能会觉得这是什么乱七八糟的东西, ...

  2. 强化学习入门简单实例 DQN

    [强化学习入门 第一讲 MDP](https://zhuanlan.zhihu.com/p/25498081) [随笔分类 - 0084. 强化学习](https://www.cnblogs.com/ ...

  3. 爬虫入门三(获取各国网址,三种网页抓取方法,下载缓存)

    对<用Python写网络爬虫>进行了总结归纳. 1.爬相关地址 #coding=utf-8 import robotparser import urlparse import urllib ...

  4. 爬虫爬取python词汇_Python爬虫入门案例:获取百词斩已学单词列表

    百词斩是一款很不错的单词记忆APP,在学习过程中,它会记录你所学的每个单词及你答错的次数,通过此列表可以很方便地找到自己在记忆哪些单词时总是反复出错记不住.我们来用Python来爬取这些信息,同时学习 ...

  5. python写爬虫要记的单词_Python爬虫入门案例:获取百词斩已学单词列表

    百词斩是一款很不错的单词记忆APP,在学习过程中,它会记录你所学的每个单词及你答错的次数,通过此列表可以很方便地找到自己在记忆哪些单词时总是反复出错记不住.我们来用Python来爬取这些信息,同时学习 ...

  6. python爬虫英文单词_Python爬虫入门案例:获取百词斩已学单词列表

    标签: 百词斩是一款很不错的单词记忆APP,在学习过程中,它会记录你所学的每个单词及你答错的次数,通过此列表可以很方便地找到自己在记忆哪些单词时总是反复出错记不住.我们来用Python来爬取这些信息, ...

  7. Selenium爬虫入门教程

    Selenium自动化爬取谷歌学术(学术个人档案的h指数和i10指数) Selenium自动化爬取谷歌学术 Selenium自动化爬取谷歌学术(学术个人档案的h指数和i10指数) Selenium库与 ...

  8. Python爬虫入门案例:获取百词斩已学单词列表

    本文首发在我的个人博客:https://jlice.top/p/6sjd1/.欢迎大家前去参观,么么哒~ 百词斩是一款很不错的单词记忆APP,在学习过程中,它会记录你所学的每个单词及你答错的次数,通过 ...

  9. 不用爬虫,简单JQuery获取磁力链接,方便下载

    网页分析 有时候要获取网页上的电视剧资源,如果一个个点击复制,不太方便.这里,可以用chrome类型的浏览器,按F12,打开控制台,用下面的脚本来获取. <ul class="down ...

  10. Python 爬虫的简单实例

    1,爬去百度首页. import requests as r url="https://www.baidu.com" def pc(url):try:t=r.get(url,tim ...

最新文章

  1. linux开机流程、模块管理与Loader(续)
  2. 经典面试题|ConcurrentHashMap 读操作为什么不需要加锁?
  3. linux mailbox模型
  4. linux删除php文件权限不够,linux - 用php的exec()删除目录文件提示权限不够
  5. json 插入数据_Oracle Database 20c:JSON功能增强
  6. matlab中符号函数sgn,matlab 饱和函数 sat
  7. linux vi编译显示行号,Linux系统vi或者vim编辑器中如何显示行号
  8. vue循环jq渲染网页页面
  9. 程序员如何管理自己的财富
  10. Hive面试题系列第三题-用户留存问题
  11. JavaScript高级第03天笔记
  12. vue里面提到的挂载是什么意思?
  13. Visual Basic专题(VB356套)--项目设计-毕业设计【建议在校生收藏】
  14. OverTheWire的natas游戏(21-34)
  15. 深入理解信息科学中三条“数据法则”
  16. Nginx频繁报状态码400错误,定位到原因是丢包引起
  17. 【随笔】现实环境下的自我塑造
  18. 【工艺】 CNC工艺和开模区别
  19. 结构重参数化(Structural Re-Parameters)PipLine
  20. BZOJ 4385 洛谷3594 POI2015 WIL-Wilcze doły

热门文章

  1. JavaFX Scene Builder的使用
  2. 线性表的定义和基本操作
  3. puml绘制思维导图_盘点那些美美哒的在线思维导图制作神器
  4. 【梦话区】如何解决QQ视频时别人听不到自己声音的问题——转
  5. js如何区分单击与双击(如何避免双击的时候触发单击事件)
  6. 介入治疗在胰腺癌的作用
  7. 本地java源代码上传码云
  8. 毕业设计中使用支付宝沙箱完成在线支付流程
  9. 无盘服务器架设之一:编译iPXE,用于网络,ISO,USB等无盘启动
  10. ios中常用英语单词汇总