selenium可以模拟操作浏览器
常用配合浏览器
谷歌浏览器
phantomJs 浏览器
- phantomJs
无屏浏览器更便捷
- 下载地址
注意事项
- quit()与close() 前者关闭驱动和浏览器 后者只关闭且一个tab
- 调试时会有警告提醒,忽略即可
常用方法
定位
查找定位:
find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_tag_name
find_element_by_class_name
截屏 .save_screenshot('./截图.png')
简单案例
基于谷歌
from selenium import webdriver
# 利用驱动创建浏览器对象
bro = webdriver.Chrome(executable_path='./chromedriver')
# 百度完成搜索案例
bro.get('https://www.baidu.com/') # 打开百度
text = bro.find_element_by_id('kw') # 定位到搜索框
text.send_keys('股市行情') # 向文本框写入
button = bro.find_element_by_id('su') # 定位搜索按钮
button.click() # 点击
bro.quit() # 关闭浏览器
获取豆瓣电影懂啊提加载出更多电影详情数据
基于phantomJs
from selenium import webdriver
bro = webdriver.PhantomJS(executable_path='./phantomjs')
url = 'https://movie.douban.com/typerank?type_name=喜剧&type=24&interval_id=100:90'
bro.get(url=url)
# 编写js代码,让滚轮向下滑动到底部
js = 'window.scrollTo(0,document.body.scrollHeight)'
# 执行js代码
bro.execute_script(js)
# 取当前页面数据
page_text = bro.page_source
# 解析...
# bro.save_screenshot('./豆瓣.png')