simple-Html-Dom解析HTML文件

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



目录
相关文章
|
4月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
145 2
|
17天前
|
数据采集 存储 调度
BeautifulSoup VS Scrapy:如何选择适合的HTML解析工具?
在Python网页抓取领域,BeautifulSoup和Scrapy是两款备受推崇的工具。BeautifulSoup易于上手、灵活性高,适合初学者和简单任务;Scrapy则是一个高效的爬虫框架,内置请求调度、数据存储等功能,适合大规模数据抓取和复杂逻辑处理。两者结合使用可以发挥各自优势,例如用Scrapy进行请求调度,用BeautifulSoup解析HTML。示例代码展示了如何在Scrapy中设置代理IP、User-Agent和Cookies,并使用BeautifulSoup解析响应内容。选择工具应根据项目需求,简单任务选BeautifulSoup,复杂任务选Scrapy。
BeautifulSoup VS Scrapy:如何选择适合的HTML解析工具?
|
23天前
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
28 4
|
1月前
|
数据采集 前端开发 API
SurfGen爬虫:解析HTML与提取关键数据
SurfGen爬虫:解析HTML与提取关键数据
|
3月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
375 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
2月前
|
Serverless 对象存储 人工智能
智能文件解析:体验阿里云多模态信息提取解决方案
在当今数据驱动的时代,信息的获取和处理效率直接影响着企业决策的速度和质量。然而,面对日益多样化的文件格式(文本、图像、音频、视频),传统的处理方法显然已经无法满足需求。
118 4
智能文件解析:体验阿里云多模态信息提取解决方案
|
4月前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href=&#39;example.com&#39;]` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
102 7
|
4月前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
87 3
|
4月前
|
存储
文件太大不能拷贝到U盘怎么办?实用解决方案全解析
当我们试图将一个大文件拷贝到U盘时,却突然跳出提示“对于目标文件系统目标文件过大”。这种情况让人感到迷茫,尤其是在急需备份或传输数据的时候。那么,文件太大为什么会无法拷贝到U盘?又该如何解决?本文将详细分析这背后的原因,并提供几个实用的方法,帮助你顺利将文件传输到U盘。
|
2天前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
41 29

推荐镜像

更多