本文主要介绍使用phantomjs进行网页抓取的实现代码,有需要的朋友可以参考一下。
Phantomjs可以运行js,因为它是一个无头浏览器,所以它也可以运行dom节点,这是抓取网页的最佳方式。
比如我们要批量抓取“历史上的今天”的内容。网站
根据对dom结构的观察,我们只需要得到。列出li a .所以我们使用高级选择器来构建dom片段。
变量d=
var c=document.querySelectorAll(。列出阿利’)
var l=c.length
for(var I=0;il;i ){
d=d c[i]。标题 n
}
之后就让js代码在phantomjs里运行吧~
var page=require(网页)。create();
page . Open( 3358 www.todayonhistory.com/,function(状态){//打开页面
如果(状态!==成功){
console.log(无法加载地址);
}否则{
console . log(page . evaluate(function(){
变量d=
var c=document.querySelectorAll(。列出阿利’)
var l=c.length
for(var I=0;il;i ){
d=d c[i]。标题 n
}
返回d
}))
}
幻影. exit();
});
最后我们保存为catch.js,在dos下执行,将内容输出到一个txt文件(也可以用phantomjs的file api编写)。