使用Simple-Html-Dom解析HTML文件

要想获得网页源码里的指定内容需要用到正则表达式!正则表达式,让我猝不及防,因为之前没有接触过,用起来非常的吃力!

在Java中,有大牛封装好的库,我使用的是Jsoup。将Jsuop的Jar包引入项目中,指定好唯一标示,再使用选择器,就可以将数据解析出来,最近接触到了PHP,就像使用PHP解析个新闻来玩玩!Jsoup解析滁州学院官网获取信息列表

正如我刚才所说,正规的做法就是使用正则表达式获取数据!搞了好长时间,真心驾驭不住!无论怎样研究,都没有什么卵用!

最后我通过Google搜索引擎,搜索到一篇文章,文章里介绍几种调用PHP文件来解析HTML的方法,真是天助我也!

文章我待会给转载发布出来,因为我找到的也是比人通过“转载器”发表的,既然很有用,我就给它搬过来!

昨天我使用Simple-Html-Dom.php文件,解析糗事百科首页的糗事,并定时,15分钟获取一次!因为刚刚接触PHP,昨天在11点半断网之前刚把代码发布到SAE上,有点担心代码不能正常运行,毕竟对PHP一点都不了解!

今早起来,一看数据库

这酸爽,数据太多了,太多也没用,我就关闭了获取!

下面来讲讲如何使用Simple-Html-Dom来解析HTML(小弟接触php不到两天),如果大牛看到,呵呵一笑,最好给点意见,不要喷,怕被喷!

1、下载Simple-Html-Dom压缩文件

去官网(http://sourceforge.net/projects/simplehtmldom/files/)下载压缩文件;

2、解压文件

解压文件会发现如下文件

你需要用到的方法,demo里基本上都有,就看你怎么使用了

大家看如下代码,会发现是如何引入php文件和方法的

<span style="font-family:Times New Roman;font-size:14px;"><?php
// example of how to use basic selector to retrieve HTML contents
include('../simple_html_dom.php');//引入php核心文件,注意路径,不要写错

// get DOM from URL or file
$html = file_get_html('http://www.google.com/');

// find all link
foreach($html->find('a') as $e)
    echo $e->href . '<br>';

// find all image
foreach($html->find('img') as $e)
    echo $e->src . '<br>';

// find all image with full tag
foreach($html->find('img') as $e)
    echo $e->outertext . '<br>';

// find all div tags with id=gbar
foreach($html->find('div#gbar') as $e)
    echo $e->innertext . '<br>';

// find all span tags with class=gb1
foreach($html->find('span.gb1') as $e)
    echo $e->outertext . '<br>';

// find all td tags with attribite align=center
foreach($html->find('td[align=center]') as $e)
    echo $e->innertext . '<br>';

// extract text from table
echo $html->find('td[align="center"]', 1)->plaintext.'<br><hr>';

// extract text from HTML
echo $html->plaintext;
?></span>

还有这个php文件

<span style="font-family:Times New Roman;font-size:14px;"><?php
// example of how to use advanced selector features
include('../simple_html_dom.php');

// -----------------------------------------------------------------------------
// descendant selector
$str = <<<HTML
<div>
    <div>
        <div class="foo bar">ok</div>
    </div>
</div>
HTML;

$html = str_get_html($str);
echo $html->find('div div div', 0)->innertext . '<br>'; // result: "ok"

// -----------------------------------------------------------------------------
// nested selector
$str = <<<HTML
<ul id="ul1">
    <li>item:<span>1</span></li>
    <li>item:<span>2</span></li>
</ul>
<ul id="ul2">
    <li>item:<span>3</span></li>
    <li>item:<span>4</span></li>
</ul>
HTML;

$html = str_get_html($str);
foreach($html->find('ul') as $ul) {
    foreach($ul->find('li') as $li)
        echo $li->innertext . '<br>';
}

// -----------------------------------------------------------------------------
// parsing checkbox
$str = <<<HTML
<form name="form1" method="post" action="">
    <input type="checkbox" name="checkbox1" value="checkbox1" checked>item1<br>
    <input type="checkbox" name="checkbox2" value="checkbox2">item2<br>
    <input type="checkbox" name="checkbox3" value="checkbox3" checked>item3<br>
</form>
HTML;

$html = str_get_html($str);
foreach($html->find('input[type=checkbox]') as $checkbox) {
    if ($checkbox->checked)
        echo $checkbox->name . ' is checked<br>';
    else
        echo $checkbox->name . ' is not checked<br>';
}
?></span>

这个Demo讲解的更加详细,虽然简洁但是不简单!大家如果感兴趣,可以下载运行一下试试

文件下载

时间: 2024-10-13 20:59:46

使用Simple-Html-Dom解析HTML文件的相关文章

PHP Simple HTML DOM解析器

一直以来使用php解析html文档树都是一个难题.Simple HTML DOM parser 帮我们很好地解决了使用 php html 解析 问题.可以通过这个php类来解析html文档,对其中的html元素进行操作 (PHP5+以上版本). 解析器不仅仅只是帮助我们验证html文档:更能解析不符合W3C标准的html文档.它使用了类似jQuery的元素选择器,通过元素的id,class,tag等等来查找定位:同时还提供添加.删除.修改文档树的功能.当然,这样一款强大的html Dom解析器也

DOM解析XML文件

除了可以使用SAX解析XML文件,大家也可以使用熟悉的DOM来解析XML文件. DOM解析XML文件时,会将XML文件的所有内容读取到内存中,然后允许您使用DOMAPI遍历XML树.检索所需的数据.使用DOM操作XML的代码看起来比较直观,并且,在某些方面比基于SAX的实现更加简单.但是,因为DOM需要将XML文件的所有内容读取到内存中,所以内存的消耗比较大,特别对于运行Android的移动设备来说,因为设备的资源比较宝贵,所以建议还是采用SAX来解析XML文件,当然,如果XML文件的内容比较小

使用DOM解析XML文件

首先写了一个xml文件 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id="1"> <name>c#</name> <author>张三</author> <year>1990</year> <price>60</price> </book&

JAVA中使用DOM解析XML文件

JAVA中使用DOM解析XML文件: 创建DocumentBuilderFactory的对象                                 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 创建DocumentBuilder对象 通过documentBuilder对象的parser方法加载xml文件到当前项目下 获取所有XML文件内节点的集合    getElementsByTagName()方

java DOM解析xml文件出现#text节点解决方案

java DOM解析xml文件出现#text节点解决方案 原生java解析xml的方法提供了两个,DocumentBuilder 和 SAXParser. 试了第一个DOM方法,在解析输出节点过程中,getNodeName()输出节点名发现多出了几个#text节点. text.xml <?xml version="1.0" encoding="UTF-8"?> <!-- xml解析测试文件 --> <LData> <ldat

使用第三方DOM解析XML文件

第一步:引入动态库 第二步:拖入第三方文件 第三放文件网址 https://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/ 根据文件的的要求在工程中添加相应的字段 // libxml includes require that the target Header Search Paths contain // // /usr/include/libxml2 // // and Oth

iOS:使用第三方DOM解析XML文件

第一步:引入动态库 第二步:拖入第三方文件 根据文件的的要求在工程中添加相应的字段 // libxml includes require that the target Header Search Paths contain // // /usr/include/libxml2 // // and Other Linker Flags contain // // -lxml2 这时引入的文件是MRC的,让其能在ARC的环境下运行需要更改设置 需要更改单个文件是否采用ARC来进行编译有两种情况,我

解析XML文件的两种方式 SAX和DOM

1.数据解析 解析的基本概念 所谓“解析”:从事先规定好的格式中提取数据 解析的前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 2.XML数据结构 XML:Extensible Markup language(可扩展标记语言),主流数据格式之一,可以用来存储和传输数据. XML数据格式的功能 数据交换 内容管理 用作配置文件 XML数据结构的语法 声明 节点使用一对标签表示:起始和结束标签. 根节点是起始节点,只有一

UI进阶 解析XML文件的两种方式 SAX和DOM

1.数据解析 解析的基本概念 所谓“解析”:从事先规定好的格式中提取数据 解析的前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 2.XML数据结构 XML:Extensible Markup language(可扩展标记语言),主流数据格式之一,可以用来存储和传输数据. XML数据格式的功能 数据交换 内容管理 用作配置文件 XML数据结构的语法 声明 节点使用一对标签表示:起始和结束标签. 根节点是起始节点,只有一

Java学习总结(21)——XML文档解析:DOM解析,SAX解析

一.XML简介1.可扩展性标记语言(eXtensible Markup Language)2.XML用于描述数据3.应用场合:(1)持久化存储数据(2)数据交换(3)数据配置4.XML语法(1)文档类型:在编写XML文档时,需要先使用文档声明,声明XML文档的类型.最简单的声明语法:<?Xml version="1.0" ?>用encoding属性说明文档的字符编码:<?Xml version="1.0" encoding="GB2312