Python爬虫 Selenium与PhantomJS

 

Selenium

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

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

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

pip命令安装:pip install selenium

PhantomJS

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

相关文章
相关标签/搜索