Selenium
Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动化操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。
Selenium可以根据我们的指令,让浏览器自动加载页面,获取需要的页面,甚至页面截屏,或者判断网站上某些动作是否发生。
Selenium自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所有我们而已用一个叫PhantomJS的工具代替真实的浏览器。
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 已经停止维护)
下载完成之后解压复制下面这个文件,
把这个exe 文件复制到python环境里 scripts下 :
下面上个例子,破解该网站,解析全网小视频转无水印链接
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 的具体使用方法 可参考 https://www.cnblogs.com/miqi1992/p/8093958.html