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

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').text
    allIndex=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').text
        print("%d.%s" %(j+1,title))
        #获取选项及答案
        items=browser.find_element_by_id('divSubjectItem').text
        print(items)
        if j==allIndex-1:
            break
        next=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修行路 - 博客园】

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值