使用phantomjs进行网页抓取的实现代码


Posted in Javascript onSeptember 29, 2014

phantomjs因为是无头浏览器可以跑js,所以同样可以跑dom节点,用来进行网页抓取是再好不过了。

比如我们要批量抓取网页 “历史上的今天” 的内容。网站

使用phantomjs进行网页抓取的实现代码

对dom结构的观察发现,我们只需要取到 .list li a的title值即可。因此我们利用高级选择器构建dom片段

var d= ''
var c = document.querySelectorAll('.list li a')
var l = c.length;
for(var i =0;i<l;i++){
d=d+c[i].title+'\n'
}

之后只需要让js代码在phantomjs里跑起来即可~

var page = require('webpage').create();
	page.open('http://www.todayonhistory.com/', function (status) { //打开页面
		if (status !== 'success') {
			console.log('FAIL to load the address');
		} else {
			console.log(page.evaluate(function () {
					var d= ''
					var c = document.querySelectorAll('.list li a')
					var l = c.length;
					for(var i =0;i<l;i++){
					d=d+c[i].title+'\n'
					}
						return d
				}))

		}
		phantom.exit();
	});

最终我们另存为catch.js,在dos里面执行一下,输出内容到txt文件(也可以用phantomjs的文件api来写)

使用phantomjs进行网页抓取的实现代码

Javascript 相关文章推荐
传智播客学习之java 反射
Nov 22 Javascript
js注意img图片的onerror事件的分析
Jan 01 Javascript
19个很有用的 JavaScript库推荐
Jun 27 Javascript
js实现可拖动DIV的方法
Dec 17 Javascript
onclick和onblur冲突问题的快速解决方法
Apr 28 Javascript
BootstrapValidator不触发校验的实现代码
Sep 28 Javascript
Javascript 闭包详解及实例代码
Nov 30 Javascript
微信小程序开发实现的IP地址查询功能示例
Mar 28 Javascript
ionic2.0双击返回键退出应用
Sep 17 Javascript
Vue实现图书管理小案例
Dec 03 Vue.js
element中Steps步骤条和Tabs标签页关联的解决
Dec 08 Javascript
Vue router配置与使用分析讲解
Dec 24 Vue.js
Javascript获取CSS伪元素属性的实现代码
Sep 28 #Javascript
js获取元素相对窗口位置的实现代码
Sep 28 #Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
Sep 28 #Javascript
浏览器缩放检测的js代码
Sep 28 #Javascript
排序算法的javascript实现与讲解(99js手记)
Sep 28 #Javascript
Javascript中封装window.open解决不兼容问题
Sep 28 #Javascript
jQuery固定浮动侧边栏实现思路及代码
Sep 28 #Javascript
You might like
解析php中获取url与物理路径的总结
2013/06/21 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
Python 装饰器使用详解
2017/07/29 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
python如何调用php文件中的函数详解
2020/12/29 Python
详解Python中的Lock和Rlock
2021/01/26 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
师范毕业生个人求职信
2013/12/09 职场文书
生物技术专业毕业生求职信范文
2013/12/14 职场文书
心理健康课教学反思
2014/02/13 职场文书
社区志愿者活动总结
2014/06/26 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
团日活动总结格式
2015/05/11 职场文书
北京青年观后感
2015/06/15 职场文书
婚礼答谢词范文
2015/09/29 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL