`
sabolasi
  • 浏览: 910005 次
文章分类
社区版块
存档分类
最新评论

基于PHP的table(表格)解析器

 
阅读更多

最近在写一个采集程序,其中一个任务是提取下图中表格内的所有链接。这原本很简单,甚至根本就不用考虑table的存在,但问题就在于在提取链接的同时还需要保存链接的标题及该链接所属的类别。如“龟甲占卜文”的链接的标题是龟甲占卜文,同时属于甲骨文这个类别。

这就不得不通过分析table来确定其归属关系了。因此我特意写了一个类解决这个问题,同时方便日后处理另外的table。这里把这个类的用法介绍一下,希望也能帮到你 呵呵...这个类及其测试文件可以在这下载到http://download.csdn.net/source/1516540图一

名称: table_parser

构造函数:

table_parser($url,$pattern)

->$url string 表格所在的url

->$pattern string 正则表达式,用以把表格从整个页面中分离出来

例:

核心方法:

a.array get_item($x , $y ,$catids)

->$x number 要提取的表格单元的x坐标,如“龟甲占卜文”的x坐标 1

->$y number 要提取的表格单元的y坐标,如“龟甲占卜文”的y坐标 0

->$catids array 由类别列组成的数组,如array(0,1)表示将第一,第二列用作类别

例:

输出如下:

Array
(
[0] => <div align="center" class="style1">钟<br>
<br>
鼎<br>
<br>
器<br>
<br>
皿</div> <div align="center"></div>
[1] => <div align="center"><span class="style1">B</span></div>
[2] => <a href="0157.htm" target="_blank">伯簋</a>
)

b.array get_items($x,$y,$width,$height,$catids)

->$x number 要提取的表格单元的x坐标,如“龟甲占卜文”的x坐标 1

->$y number 要提取的表格单元的y坐标,如“龟甲占卜文”的y坐标 0

->$width number 要提取的列数

->$height number 要提取的行数

->$catids array 由类别列组成的数组,如array(0,1)表示将第一,第二列用作类别

辅助函数:

a.string get_link($str) 获取$str中可能存在的链接

b.string get_img($str) 获取$str中可能存在的图片

c.mix remove_tags($mix) 清除$mix的html及php标记,$mix可以是数组

分享到:
评论

相关推荐

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包7

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包9

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包101

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    Java资源包01

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    JAVA上百实例源码以及开源项目源代码

     [TablePanel.java] 日历表格面板  [ConfigLine.java] 控制条类  [RoundBox.java] 限定选择控件  [MonthMaker.java] 月份表算法类  [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件...

    JAVA上百实例源码以及开源项目

     [TablePanel.java] 日历表格面板  [ConfigLine.java] 控制条类  [RoundBox.java] 限定选择控件  [MonthMaker.java] 月份表算法类  [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件...

    ZendFramework中文文档

    解析(Rendering)视图 7.7.6. 实用方法 7.7.7. 继承(Subclassing)动作控制器 7.8. 动作助手 7.8.1. 介绍 7.8.2. 初始化助手 7.8.3. 助手经纪人 7.8.4. 内建的动作助手 7.8.4.1. 动作堆栈(助手) 7.8....

    xheditor-1.1.14

    Table:表格 Source:切换源代码模式 Preview:预览当前代码 Print:打印 Fullscreen:切换全屏模式 About:关于xhEditor skin:皮肤风格选择 参数值:default(默认风格),o2007blue(Office 2007 蓝色),o2007silver...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    它是微软的IE浏览器特有的功能,用它可以对XML标识设定一些有趣动作。 七.DOM DOM全称是document object model(文档对象模型),DOM是用来干什么的呢?假设把你的文档看成一个单独的对象,DOM就是如何用HTML或者...

Global site tag (gtag.js) - Google Analytics