使用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 相关文章推荐
javascript自定义右键弹出菜单实现方法
May 25 Javascript
JS拖拽插件实现步骤
Aug 03 Javascript
jquery树形菜单效果的简单实例
Jun 06 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
Aug 02 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
Nov 01 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
Nov 30 Javascript
实例解析ES6 Proxy使用场景介绍
Jan 08 Javascript
快速解决处理后台返回json数据格式的问题
Aug 07 Javascript
Vue项目引发的「过滤器」使用教程
Mar 12 Javascript
如何通过javaScript去除字符串两端的空白字符
Feb 06 Javascript
JavaScript实现指定数量的并发限制的示例代码
Mar 10 Javascript
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
May 25 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
地摊中国 - 珍藏老照片
2020/08/18 杂记
PHP与Java进行通信的实现方法
2013/10/21 PHP
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
JavaScript 模拟用户单击事件
2009/12/31 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
javascript history对象详解
2017/02/09 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
JavaScript实现动态生成表格
2020/08/02 Javascript
python链接Oracle数据库的方法
2015/06/28 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
会计专业毕业生求职信分享
2014/01/03 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
幼师小班个人总结
2015/02/12 职场文书
跑出一片天观后感
2015/06/08 职场文书
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL