Python学习笔记--Python 爬虫入门 -17-10 动态数据的采集 Selenium+PhantomJS

# 动态HTML

## 爬虫跟反爬虫

## 动态HTML介绍
- JavaScrapt
- jQuery
- Ajax
- DHTML
- Python采集动态数据
    - 从Javascript代码入手采集
    - Python第三方库运行JavaScript,直接采集你在浏览器看到的页面

## Selenium + PhantomJS
- Selenium: web自动化测试工具
    - 自动加载页面
    - 获取数据
    - 截屏
    - 安装: pip install selenium==2.48.0


    - 官网: http://selenium-python.readthedocs.io/index.html
- PhantomJS(幽灵)
    - 基于Webkit 的无界面的浏览器 
    - 官网: http://phantomjs.org/download.html
- Selenium 库有一个WebDriver的API
- WebDriver可以跟页面上的元素进行各种交互,用它可以来进行爬取
- 案例 v36
- chrome + chromedriver
    - 下载安装chrome: 下载+安装
    - 下载安装chromedriver:

           chromedriver 遇到的问题,请参考下篇内容https://blog.csdn.net/u013985879/article/details/82595431

from selenium import  webdriver
"""
通过webdriver 操作百度进行查找
"""
from selenium.webdriver.common.keys import  Keys

driver = webdriver.PhantomJS("")

driver.get("http://www.baidu.com")

print("Title..{}".format(driver.title))


- 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类来做到
    - 案例37

from selenium import  webdriver
from selenium.webdriver.common.keys import  Keys
import  time


driver = webdriver.Chrome(r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")


driver.get("https://www.baidu.com")

text = driver.find_element_by_id("wrapper").text

"""
新闻
hao123
地图
视频
贴吧
学术
登录
设置
更多产品
百度
把百度设为主页关于百度About  Baidu百度推广
©2018 Baidu 使用百度前必读 意见反馈 京ICP证030173号  京公网安备11000002000001号 
"""
print(text)
#百度一下,你就知道
print(driver.title)

# 输入 大熊猫--3s ---点击---5s --daxiongmao.png
# ctrl+a ---2s --ctrl+x ---2s
# 输入 航空母舰 ->截图hangmu.png--回车--5s--截图hangmushow.png
# 清空输入框 -截图--退出


# 得到页面的快照
# driver.save_screenshot("index.png")
#id ='kw' 是百度搜索的按钮,我们得到输入框的ui 元素后直接输入大熊猫
driver.find_element_by_id("kw").send_keys(u"大熊猫")
time.sleep(3)
#id='su' 是百度搜索的按钮,click 模拟点击
driver.find_element_by_id("su").click()

time.sleep(5)
driver.save_screenshot("daxiongmao.png")

#获取当前页面的cookie
print(driver.get_cookies())

# 模拟ctr+a
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
time.sleep(2)
# 模拟ctr+X
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
time.sleep(2)

driver.find_element_by_id("kw").send_keys(u"航空母舰")
driver.save_screenshot("hangmu.png")

driver.find_element_by_id("su").send_keys(Keys.RETURN)
time.sleep(5)
driver.save_screenshot("hangmushow.png")

# 清空输入框
driver.find_element_by_id("kw").clear()
driver.save_screenshot("clear.png")


driver.quit()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值