Selenium + ChromeDriver

Selenium

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像咱们玩游戏用的按键精灵,能够按指定的命令自动操做,不一样是Selenium 能够直接运行在浏览器上,它支持全部主流的浏览器(包括PhantomJS,Chrome这些无界面的浏览器)。html

Selenium 能够根据咱们的指令,让浏览器自动加载页面,获取须要的数据,甚至页面截屏,或者判断网站上某些动做是否发生。python

Selenium 本身不带浏览器,不支持浏览器的功能,它须要与第三方浏览器结合在一块儿才能使用。可是咱们有时候须要让它内嵌在代码中运行,因此咱们能够用一个叫 PhantomJS 的工具代替真实的浏览器。web

能够从 PyPI 网站下载 Selenium库 https://pypi.python.org/simpl...
也能够用 第三方管理器 pip用命令安装(windows 环境):pip install selenium
Selenium 官方参考文档: http://selenium-python.readth...

ChromeDriver

下载ChromeDriverchrome

https://npm.taobao.org/mirror...

找到最新日期的版本,能够查看notes.txt文档,选择支持的Chrome浏览器的版本npm

  1. 解压 chromedriver_win32.zip
  2. 将 chromedriver.exe 移动到 Python安装目录下
    (其实放哪均可以,可是须要配环境变量,放Python安装目录下省事)

简单的小介绍

# coding=utf-8
# 导包
from selenium import webdriver
import time

if __name__ == '__main__':

    # 1. 建立浏览器对象
    driver = webdriver.Chrome()

    # 2. 发送请求
    driver.get('https://www.baidu.com')

    # 3. 获取数据
    # data = driver.page_source
    # with open('baidu.html', 'w') as f:
    #     f.write(data.encode('utf-8'))

    # 给搜索框 输入数据: 数据 必须是unicode
    driver.find_element_by_id('kw').send_keys(u'segmentfault')
    # 而后点击
    # driver.find_element_by_id('su').click()
    # webdriver 也支持xpath
    driver.find_element_by_xpath('//*[@id="su"]').click()

    time.sleep(3)

    # 浏览器有几个标签页
    print driver.window_handles
    
    # 屏幕快照
    driver.save_screenshot('baidu.png')

    # 点击搜索结果的第一条
    driver.find_element_by_xpath('//*[@id="1"]/h3/a').click()

    # time.sleep(3)

    # 由于点击以后会打开一个新的标签,因此须要跳到新的标签
    # driver.switch_to_window(driver.window_handles[1])

    print driver.window_handles

    # 4. 屏幕快照
    driver.save_screenshot('baidu1.png')
相关文章
相关标签/搜索