selenium模块

时间:2019-06-17
本文章向大家介绍selenium模块,主要包括selenium模块使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

什么是selenium

  一款基于浏览器自动化的模块

和爬虫的关联

  模拟登陆

  获取动态数据

#演示程序

from selenium import webdriver
from time import sleep

# 后面是你的浏览器驱动位置,记得前面加r'','r'是防止字符转义的
driver = webdriver.Chrome(r'./chromedriver.exe')
# 用get打开百度页面
driver.get("http://www.baidu.com")
# 查找页面的“设置”选项,并进行点击
driver.find_elements_by_link_text('设置')[0].click()
sleep(2)
# # 打开设置后找到“搜索设置”选项,设置为每页显示50条
driver.find_elements_by_link_text('搜索设置')[0].click()
sleep(2)

# 选中每页显示50条
m = driver.find_element_by_id('nr')
sleep(2)
m.find_element_by_xpath('//*[@id="nr"]/option[3]').click()
m.find_element_by_xpath('.//option[3]').click()
sleep(2)

# 点击保存设置
driver.find_elements_by_class_name("prefpanelgo")[0].click()
sleep(2)

# 处理弹出的警告页面   确定accept() 和 取消dismiss()
driver.switch_to_alert().accept()
sleep(2)
# 找到百度的输入框,并输入 美女
driver.find_element_by_id('kw').send_keys('美女')
sleep(2)
# 点击搜索按钮
driver.find_element_by_id('su').click()
sleep(2)
# 在打开的页面中找到“Selenium - 开源中国社区”,并打开这个页面
driver.find_elements_by_link_text('美女_百度图片')[0].click()
sleep(3)

# 关闭浏览器
driver.quit()

selenium如何获取动态加载数据

  环境的安装:pip install selenium

  基本使用流程

    1.from selenium import webdriver

    2.结合着某一款浏览器驱动程序实例化一个浏览器对象  bro=webdriver.Chrome(executable_path='./chromedriver.exe') 

    3.下载浏览器驱动:http://chromedriver.storage.googleapis.com/index.html   将下载的驱动放在对应爬虫项目的文件夹里面

      3.1查看驱动和浏览器版本的映射系:http://blog.csdn.net/huilan_same/article/details/51896672

    4.发起请求: bro.get(url='http://125.35.6.84:81/xk/') 

    5.通过xpath或者bs4  获取当前页面的源码数据

page_text=bro.page_source

soup=BeautifulSoup(page_text,'lxml')

dl_list=soup.select('#gzlist > li > dl')

for dl in dl_list:
    print(dl.string)

    编写自动化操作代码

#low版爬取药监局的数据
from
bs4 import BeautifulSoup #引入webdriver from selenium import webdriver #实例化浏览器对象,参数executable_path bro=webdriver.Chrome(executable_path='./chromedriver.exe') #发起一个请求 bro.get(url='http://125.35.6.84:81/xk/') #获取当前浏览器页面的源码数据 page_text=bro.page_source soup=BeautifulSoup(page_text,'lxml') dl_list=soup.select('#gzlist > li > dl') for dl in dl_list: print(dl.string)

selenium的详细用法

  1.实例化浏览器(参数为浏览器的驱动) bro = webdriver.Chrome(executable_path='./chromedriver.exe') 

  2.发起请求 bro.get('https://www.taobao.com/') 

  3.通过find系列定位标签 search_input = bro.find_element_by_id('q') 

    find_element_by_id

    find_element_by_xpath

  4.执行js代码,滚动刷新 bro.execute_script('window.scrollTo(0,document.body.scrollHeight)') 

  5.点击按钮事件 btn.click() 

  6.退出浏览器 bro.quit() 

from selenium import webdriver
from time import sleep
#实例化一个浏览器对象
bro = webdriver.Chrome(executable_path='./chromedriver.exe')
bro.get('https://www.taobao.com/')
#在淘宝首页搜索框中录入一个商品名称
search_input = bro.find_element_by_id('q') #find系列的函数是用作于定位标签
#向定位到的标签中录入一个商品名称
search_input.send_keys('华为')
sleep(2)

#如何执行js代码,滚动刷新
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(2)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(2)


btn = bro.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button')
btn.click()
sleep(2)

bro.quit()

执行动作链

原文地址:https://www.cnblogs.com/l1222514/p/11042470.html