学习笔记-Python-爬虫5-Selenium + PhantomJS

# 动态HTML
- JavaScript
- jQuery
- Ajax
- DHTML
- Python采集动态数据
- 从JavaScript代码入手采集
- Python第三方库运行JavaScript,直接采集你在浏览器看到的页面
# Selenium + PhantomJS
- Selenium:web自动化测试工具(操纵浏览器)
- 自动加载页面
- 获取数据
- 截屏
- 安装:pip install selenium==2.48.0
- 官网:http://selenium.python.readthedocs.io/index.html
- Selenium库有一个WebDriver的API
- WebDriver可以跟页面上的元素进行各种交互,用它来进行爬取
- 下载完chromedriver并配置完成环境变量之后,如果webdriver.Chrome()还是无法使用,可以把chromedriver.exe文件放在当前目录
- PhantomJS(幽灵浏览器)
- 基于webkit的无界面的浏览器
- 官网:http://phantomjs.org
- 案例v36
- chrome + chromedriver
- 下载安装chrome
- 下载安装chromedriver
- 在尤班图下安装方法:
aptitude search chromedriver
aptitude install chromium-chromedriver
# 一、查看chromedriver安装位置
dpkg -L chromedriver
# 进入查找到的目录
cd /usr/lib/chromium-browser/
# 查到进入到的目录下有什么
ls chromedriver
# 运行这个文件
./chromedriver
# 二、做配置
cd /usr/bin/
# 找chromedriver链接(相当于windows的快捷方式)
ll chromedriver
- Selenium操作主要分两大类
- 得到UI元素
- find_element_by_id
- find_elements_by_name
- find_elements_by_xpath
- find_elements_by_link_text
- find_elements_by_partial_link_text
- find_elements_by_tag_name
- find_elements_by_class_name
- find_elements_by_css_selector
- 基于UI元素操作的模拟
- 单击
- 右键
- 拖拽
- 输入
- 可以通过导入ActionsChains类做到
- 案例v37

# 案例v37
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys

# Chrome有时候可能找不到,需要手动添加路径
driver = webdriver.Chrome()
url = "http://www.baidu.com"
driver.get(url)

text = driver.find_element_by_id("wrapper").text
print(text)
print(driver.title)
# 得到页面的快照
driver.save_screenshot('index.png')

# 找到id是kw的输入框,输入大熊猫
driver.find_element_by_id('kw').send_keys(u"大熊猫")
# su是百度搜索按钮的id,用click模拟点击
driver.find_element_by_id('su').click()
time.sleep(5)
driver.save_screenshot("daxiongmao.png")

# 获取当前页面的cookie
cookies = driver.get_cookies()
print('这里是cookies:',cookies)

# 模拟输入两个按键ctrl+a
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
# ctrl+x是剪切快捷键
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')

driver.find_element_by_id("kw").send_keys(u'航母')
driver.save_screenshot('hangmu.png')
# 输入回车键
driver.find_element_by_id("kw").send_keys(Keys.RETURN, 'x')
time.sleep(5)
driver.save_screenshot('hangmu2.png')

# 清空输入框
driver.find_element_by_id('kw').clear()
driver.save_screenshot('clear.png')
# 关闭浏览器
driver.quit()

 

 

 

转载于:https://www.cnblogs.com/Cloudloong/p/10044733.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值