Selenium与PhantomJS

Selenium【瑟林捏幕】

Selenium 是一个强大的网络数据采集工具,最初是为了网站自动化测试而开发的,被用来测试Web应用程序在不同的浏览器和操作系统上运行能力。

Selenium不带浏览器,它需要与第三方浏览器结合在一起使用。例如,如果你在Chrome上运行Selenium

from selenium import webdriver

Create a new instance of the Chrome driver

driver = webdriver.Chrome(executable_path="/path/to/chromedriver")

go to the baidu home page

driver.get("https://www.baidu.com")

the page is ajax so the title is originally this:

print driver.title
</div></div> 可以直接看到Chrome窗口被打开,进入百度首页,然后执行打印title。

近几年,它还被广泛用于获取精确的网站快照,因为Selenium可以直接运行在浏览器上。让浏览器自动加载页面,获取需要的数据,甚至执行点击事件、页面截屏等等。

虽然运行在浏览器上,看起来更直观,但是如果没有了渲染,执行效率更高,这就是PhantomJS的优势。

PhantomJS【饭特姆JS】

PhantomJS是一个基于WebKit内核、无UI界面的浏览器,WebKit是一个开源的浏览器引擎。比如,主流的Safari, Google Chrome,傲游3,猎豹浏览器,百度浏览器,opera浏览器 基于 Webkit 开发。)

PhantomJS会把网站数据加载到内存中,并执行页面上的JavaScript,但不会向用户展示图形界面。

总结

当将Selenium和PhantomJS结合在一起,就可以运行一个非常强大的网络爬虫,它可以处理cookie、JavaScrip、click事件,以及判断网站上某些动作是否发生