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事件,以及判断网站上某些动作是否发生