Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,最初是为网站自动化测试而开发的,类型像咱们玩游戏用的按键精灵,能够按指定的命令自动化操做,不一样是Selenium能够直接运行在浏览器上,它支持全部主流的浏览器(包括PhantomJS这些无界面的浏览器)。html
Selenium能够根据咱们的指令,让浏览器自动加载页面,获取须要的页面,甚至页面截屏,或者判断网站上某些动做是否发生。python
Selenium本身不带浏览器,不支持浏览器的功能,它须要与第三方浏览器结合在一块儿才能使用。可是咱们有时候须要让它内嵌在代码中运行,全部咱们而已用一个叫PhantomJS的工具代替真实的浏览器。web
pip命令安装:pip install selenium
PhantomJS
是一个基于Webkit的"无界面"(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScript,由于不会展现图形界面,因此运行起来比完整的浏览器更高效。浏览器
若是咱们把Selenium和PhantomJS结合在一块儿,就能够运行一个很是强大的网络爬虫了,这个爬虫能够处理JavaScript、Cookie、headers,以及任何咱们真实用户须要作的事情。缓存
PhantomJS只能从它的网站(http://phantomjs.org/download.html
)下载。由于PhantomJS是一个功能完善(虽然无界面)的浏览器而非一个Python库,因此它不须要像Python的其它库同样安装,但咱们能够通网络
过Selenium调用PhantomJS来直接使用 (目前phantomjs 已经中止维护)app
下载完成以后解压复制下面这个文件,less
把这个exe 文件复制到python环境里 scripts下 :ide
下面上个例子,破解该网站,解析全网小视频转无水印连接工具
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.common.desired_capabilities import DesiredCapabilities service_args=[] service_args.append('--load-images=no') ##关闭图片加载 service_args.append('--disk-cache=yes') ##开启缓存 service_args.append('--ignore-ssl-errors=true') ##忽略https错误 driver = webdriver.PhantomJS(service_args=service_args) driver.get('http://www.700745.com/') driver.find_element_by_class_name('el-input__inner').send_keys('http://v.douyin.com/UP9RT7/') driver.find_element_by_id('button').click() element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.LINK_TEXT, "下载视频"))) video_url = driver.find_element_by_link_text('下载视频').get_attribute('href') cover_url = driver.find_element_by_link_text('视频封面').get_attribute('href') print(video_url) print(cover_url)
selenium 的具体使用方法 可参考 http://www.javashuo.com/article/p-nuofsdng-gd.html