1分钟快速生成用于网页内容提取的xslt


Posted in Python onFebruary 23, 2018

1分钟快速生成用于网页内容提取的xslt,具体内容如下

1、项目背景

在《Python即时网络爬虫项目说明》一文我们说过要做一个通用的网络爬虫,而且能节省程序员大半的时间,而焦点问题就是提取器使用的抓取规则需要快速生成。在python使用xslt提取网页数据一文,我们已经看到这个提取规则是xslt程序,在示例程序中,直接把一长段xslt赋值给变量,但是没有讲这一段xslt是怎么来的。

网友必然会质疑:这个xslt这么长,编写不是要花很长时间?

实际情况是,这个xslt是通过GooSeeker的MS谋数台的直观标注功能自动生成的,熟练的话1分钟就搞定了。

2、MS谋数台能做什么

MS谋数台有个图形化界面,把一系列html解析工具集成在一起,包括:

  • 基于直观标注自动生成XSLT
  • 即时测试XSLT的正确性
  • 树状的DOM结构展示
  • 剖析某个DOM节点的属性
  • 为DOM节点生成XPath,可选择定位到class、或者id、或者绝对定位
  • 根据xpath搜索DOM节点

MS谋数台界面分成三部分:DOM数窗口、内嵌浏览器窗口、工作台。在工作台上定义xslt转换规则。

3、用MS谋数台生成XSLT

假设我们要抓取论坛帖子列表,下面一步步讲解操作方法:
第一步,打开GooSeeker的MS谋数台,输入要抓取的网址
第二步,在MS谋数台的浏览器显示窗口里,直接选取要提取的内容,并且起个名字,点击确认

1分钟快速生成用于网页内容提取的xslt

第三步,点击工作台的“测试”按钮,xslt就生成了,在“数据规则”窗口显示出来

1分钟快速生成用于网页内容提取的xslt

通过以上的操作,不用编程,用图形化界面直接在页面上标注,1分钟就可以生成xslt

4、怎样使用XSLT

在python使用xslt提取网页数据一文,我们把生成xslt作为一个字符串交给程序,给人感觉好像一下子回到了史前文明,前面讲的那么好,最后用了很原始的拷贝。其实不然,那个只是一个例子。在《python即时网络爬虫项目: 内容提取器的定义》一文已经初见端倪了,有多种注入xslt的方式,最自动化的方式是api,将在后续文章中详细讲解。

5、文档修改历史

2016-05-28:V3.0,增加第二章
2016-05-26:V2.0,增补文字说明

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
django 中QuerySet特性功能详解
Jul 25 Python
python urllib爬虫模块使用解析
Sep 05 Python
Python统计分析模块statistics用法示例
Sep 06 Python
解决python中0x80072ee2错误的方法
Jul 19 Python
Python Selenium自动化获取页面信息的方法
Aug 31 Python
call在Python中改进数列的实例讲解
Dec 09 Python
python pillow库的基础使用教程
Jan 13 Python
Python基本的内置数据类型及使用方法
Apr 13 Python
python使用xslt提取网页数据的方法
Feb 23 #Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 #Python
python爬虫获取多页天涯帖子
Feb 23 #Python
Python即时网络爬虫项目启动说明详解
Feb 23 #Python
Python爬豆瓣电影实例
Feb 23 #Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 #Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 #Python
You might like
PHP 变量的定义方法
2010/01/26 PHP
php 静态变量与自定义常量的使用方法
2010/01/26 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
php中上传文件的的解决方案
2018/09/25 PHP
js history对象简单实现返回和前进
2013/10/30 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
jquery加载图片时以淡入方式显示的方法
2015/01/14 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
详解Vue项目中实现锚点定位
2019/04/24 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
Python卸载模块的方法汇总
2016/06/07 Python
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
python计算两个地址之间的距离方法
2018/06/09 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
CSS3实现简易版的刮刮乐效果
2016/09/27 HTML / CSS
时尚设计师手表:The Watch Cabin
2018/10/06 全球购物
预备党员表决心书
2014/03/11 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python
详细了解java监听器和过滤器
2021/07/09 Java/Android