simple-Html-Dom解析HTML文件

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 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压缩文件

去官网(sourceforge.net/projects/si…;


2、解压文件

解压文件会发现如下文件

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

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

<?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('www.google.com/');
// find all link
foreach(html−>find(′a′)ashtml->find('a') as html−>find(′a′)ase)
echo $e->href . '';
// find all image
foreach(html−>find(′img′)ashtml->find('img') as html−>find(′img′)ase)
echo $e->src . '';
// find all image with full tag
foreach(html−>find(′img′)ashtml->find('img') as html−>find(′img′)ase)
echo $e->outertext . '';
// find all div tags with id=gbar
foreach(html->find('div#gbar') as e)
echo $e->innertext . '';
// find all span tags with class=gb1
foreach(html−>find(′span.gb1′)ashtml->find('span.gb1') as html−>find(′span.gb1′)ase)
echo $e->outertext . '';
// find all td tags with attribite align=center
foreach(html->find('td\[align=center\]') as e)
echo $e->innertext . '';
// extract text from table
echo $html->find('td[align="center"]', 1)->plaintext.'
';
// extract text from HTML
echo $html->plaintext;
?>
还有这个php文件
<?php
// example of how to use advanced selector features
include('../simple_html_dom.php');
// -----------------------------------------------------------------------------
// descendant selector
$str = <<<HTML
ok  
HTML;  
html=str_get_html(html = str\_get\_html(html=str_get_html(str);
echo $html->find('div div div', 0)->innertext . ''; // result: "ok"
// -----------------------------------------------------------------------------
// nested selector
$str = <<<HTML
item:1  
item:2  
item:3  
item:4  
HTML;  
html=str_get_html(html = str\_get\_html(html=str_get_html(str);
foreach(html−>find(′ul′)ashtml->find('ul') as html−>find(′ul′)asul) {
foreach(ul−>find(′li′)asul->find('li') as ul−>find(′li′)asli)
echo $li->innertext . '';
}
// -----------------------------------------------------------------------------
// parsing checkbox
$str = <<<HTML
item1  
item2  
item3  
HTML;  
html=str_get_html(html = str\_get\_html(html=str_get_html(str);
foreach(html->find('input\[type=checkbox\]') as checkbox) {
if (checkbox−>checked)echocheckbox->checked)  echo checkbox−>checked)echocheckbox->name . ' is checked';
else
echo $checkbox->name . ' is not checked';
}
?

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


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


在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压缩文件

去官网(sourceforge.net/projects/si…;


2、解压文件


解压文件会发现如下文件

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

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

<?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('www.google.com/');
// find all link
foreach(html−>find(′a′)ashtml->find('a') as html−>find(′a′)ase)
echo $e->href . '';
// find all image
foreach(html−>find(′img′)ashtml->find('img') as html−>find(′img′)ase)
echo $e->src . '';
// find all image with full tag
foreach(html−>find(′img′)ashtml->find('img') as html−>find(′img′)ase)
echo $e->outertext . '';
// find all div tags with id=gbar
foreach(html->find('div#gbar') as e)
echo $e->innertext . '';
// find all span tags with class=gb1
foreach(html−>find(′span.gb1′)ashtml->find('span.gb1') as html−>find(′span.gb1′)ase)
echo $e->outertext . '';
// find all td tags with attribite align=center
foreach(html->find('td\[align=center\]') as e)
echo $e->innertext . '';
// extract text from table
echo $html->find('td[align="center"]', 1)->plaintext.'';
// extract text from HTML
echo $html->plaintext;
?>
还有这个php文件
<?php
// example of how to use advanced selector features
include('../simple_html_dom.php');
// -----------------------------------------------------------------------------
// descendant selector
$str = <<<HTML
ok  
HTML;  
html=str_get_html(html = str\_get\_html(html=str_get_html(str);
echo $html->find('div div div', 0)->innertext . ''; // result: "ok"
// -----------------------------------------------------------------------------
// nested selector
$str = <<<HTML
item:1  
item:2  
item:3  
item:4  
HTML;  
html=str_get_html(html = str\_get\_html(html=str_get_html(str);
foreach(html−>find(′ul′)ashtml->find('ul') as html−>find(′ul′)asul) {
foreach(ul−>find(′li′)asul->find('li') as ul−>find(′li′)asli)
echo $li->innertext . '';
}
// -----------------------------------------------------------------------------
// parsing checkbox
$str = <<<HTML
item1  
item2  
item3  
HTML;  
html=str_get_html(html = str\_get\_html(html=str_get_html(str);
foreach(html->find('input\[type=checkbox\]') as checkbox) {
if (checkbox−>checked)echocheckbox->checked)  echo checkbox−>checked)echocheckbox->name . ' is checked';
else
echo $checkbox->name . ' is not checked';
}
?>

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

文件下载download.csdn.net/download/qq…



目录
相关文章
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
77 2
|
26天前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href=&#39;example.com&#39;]` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
|
1月前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
42 3
|
1月前
|
存储
文件太大不能拷贝到U盘怎么办?实用解决方案全解析
当我们试图将一个大文件拷贝到U盘时,却突然跳出提示“对于目标文件系统目标文件过大”。这种情况让人感到迷茫,尤其是在急需备份或传输数据的时候。那么,文件太大为什么会无法拷贝到U盘?又该如何解决?本文将详细分析这背后的原因,并提供几个实用的方法,帮助你顺利将文件传输到U盘。
|
1月前
|
XML JavaScript 前端开发
如何解析一个 HTML 文本
【10月更文挑战第23天】在实际应用中,根据具体的需求和场景,我们可以灵活选择解析方法,并结合其他相关技术来实现高效、准确的 HTML 解析。随着网页技术的不断发展,解析 HTML 文本的方法也在不断更新和完善,
|
1月前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
122 1
|
2月前
|
XML 数据格式
HTML 实例解析
本文介绍了HTML中常见元素的使用方法,包括`&lt;p&gt;`、`&lt;body&gt;`和`&lt;html&gt;`等。详细解析了这些元素的结构和作用,并强调了正确使用结束标签的重要性。此外,还提到了空元素的使用及大小写标签的规范。
|
2月前
|
JavaScript 前端开发 容器
Vue生成PDF文件攻略:html2canvas与jspdf联手,中文乱码与自动换行难题攻克
Vue生成PDF文件攻略:html2canvas与jspdf联手,中文乱码与自动换行难题攻克
243 0
|
6月前
|
JavaScript
VScode格式化vue文件--避免html属性换行
VScode格式化vue文件--避免html属性换行
940 0
|
JavaScript 前端开发
VSCode .vue 文件 html css 无智能提示
VSCode .vue 文件 html css 无智能提示
958 0

热门文章

最新文章

推荐镜像

更多