# selenium概念基于浏览器自动化的模块,编写代码控制浏览器的操作.
# 应用在爬虫中可以帮我们便捷的爬去到页面中动态加载出来的数据,实现模拟登陆
# 基本流程:
# 1.pip install selenium
# 2.下载谷歌的驱动程序:http://chromedriver.storage.googleapis.com/index.html
from selenium import webdriver
from time import sleep
# 实例化一个浏览器对象,填写浏览器驱动位置,要加r,放置字符转义 driver = webdriver.Chrome(r'./chromedriver.exe') # 用get方法打开网页 driver.get("http://www.baidu.com") # 查找页面的"设置"选项,调用的方法(通过连接文本查找元素),找到并点击 driver.find_elements_by_link_text('设置')[0].click() # 再找"搜索设置"选项,设置每页显示50条 driver.find_elements_by_link_text('搜索设置')[0].click() sleep(2) # 选中每页显示50条 m = driver.find_element_by_id('nr') m.find_element_by_xpath('//*[@id="nr"]/option[3]').click() m.find_element_by_xpath('.//option[3]').click() driver.find_elements_by_class_name("prefpanelgo")[0].click() sleep(2) driver.switch_to_alert().accept() sleep(2) # 找到输入框,send_keys填写内容 driver.find_element_by_id('kw').send_keys("海贼王") driver.find_element_by_id('su').clink() # 关闭这个浏览器对象 driver.quit()
实例简单应用
# 实例应用:爬取药监总局 from selenium import webdriver from lxml import etree import time # 实例化浏览器对象 yaojianju = webdriver.Chrome(executable_path='./chromedriver.exe') # get对url发起请求 yaojianju.get('http://125.35.6.84:81/xk/') # 获取浏览器当前打开页面的页面源码数据(可见即可得) page_text = yaojianju.page_source time.sleep(2) # 获取网页数据 tree = etree.HTML(page_text) name = tree.xpath('//*[@id="gzlist"]/li[1]/dl/a/text()')[0] print(name) time.sleep(3) yaojianju.quit()