爬虫(3)——selenium

1.selenium

  1. 什么是selenium?

    • selenium是一个用于web应用程序测试的工具
    • selenium测试直接运行在浏览器中,就像真正的用户在操作一样
    • 支持通过各种driver(FirfoxDriver,InternetDriver,OperaDriver,ChromeDirver)驱动真实浏览器完成测试
    • selenium也是支持无界面浏览器操作的
  2. 为什么使用selenium?

    • 模拟浏览器功能,自动执行网页中的js代码,实现动态加载
  3. 如何安装selenium?

    • 操作谷歌浏览器驱动下载地址

      http://chromedriver.storage.googleapis.com/index.html

    • 谷歌驱动和谷歌浏览器版本之间的映射表

      http://blog.csdn.net/huilan_same/article/details/51896672

    • 查看谷歌浏览器版本

      谷歌浏览器右上角->帮助->关于

    • pip install selenium

  4. selenium的使用步骤:

    1. 导入: from selenium import webdriver

    2. 创建谷歌浏览器操作对象:

      path = 谷歌浏览器驱动文件路径

      browser = webdriver.Chrome(path)

    3. 访问网址

      url = 要访问的网址

      browser.get(url)

    4. selenium的元素定位:

      • 元素定位:自动化要做的就是模拟鼠标和键盘来操作这些元素,点击、输入等。操作这些元素首先要找到它们,webdriver提供很多元素定位的方法
      • 方法:
        • find_element_by_id
          • button = browser.find_element_by_id(‘su’)
        • find_element_by_name
          • name = browser.find_element_by_name(‘wd’)
        • find_elements_by_xpath
          • xpath1 = browser.find_elements_by_xpath(’//input[@id=“su”]’)
        • find_elements_by_tag_name
          • names= browser.find_elements_by_tag_name(‘input’)
        • find_elements_by_css_selector
        • find_elements_by_link_text
    5. 访问元素信息:

      • 获取元素属性:

        .get_attribute(‘class’)

      • 获取元素文本:即两个尖括号之间的内容,如 < span> 百度 < /span>,则获取的元素文本即为百度

        .text

      • 获取标签名

        .tag_name

    6. 交互:

      • 点击:click()

      • 输入:send_keys()

      • 后退操作:browser.back()

      • 前进操作:browser.forword()

      • 模拟JS滚动:

        JS=‘document.documentElement.scrollTop=100000’

        browser.execute_script(js)执行js代码

      • 获取网页代码:page_source

      • 退出:browser.quit()

2.Phantomjs(已经停更,不推荐使用)

  1. 什么是Phantomjs:

    1. 是一个无界面浏览器
    2. 支持页面元素查找、js的执行等
    3. 由于不进行css和gui渲染,运行效率要比真实的浏览器快很多
  2. 如何使用Phantomjs

    1. 获取PhantomJS.exe文件路径path

    2. browser = webdriver.PhantomJS(path)

    3. browser.get(url)

      扩展:保存屏幕快照:browser.save_screenshot(‘baidu.png’)

3.Chrome handless

  1. 系统要求:

    Chrome:

    ​ Unix\Linux 系统需要 chrome>=59

    ​ Windows 系统需要 chrome>=60

    Python3.6

    Selenium==3.4.*

    ChromeDriver==2.31

  2. 配置:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    
    path = r'C:\Program Files\Google\Chrome\Application\chrome.exe'
    chrome_options.binary_location = path
    
    browser = webdriver.Chrome(chrome_options=chrome_options)
    
    browser.get('http://www.baidu.com')
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值