simple-Html-Dom解析HTML文件

简介: 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…



目录
相关文章
|
2月前
|
XML 前端开发 C#
C#编程实践:解析HTML文档并执行元素匹配
通过上述步骤,可以在C#中有效地解析HTML文档并执行元素匹配。HtmlAgilityPack提供了一个强大而灵活的工具集,可以处理各种HTML解析任务。
135 19
|
6月前
|
机器学习/深度学习 数据采集 JavaScript
用深度学习提升DOM解析——自动提取页面关键区块
本文介绍了一次二手车数据爬虫事故的解决过程,从传统XPath方案失效到结合深度学习语义提取的成功实践。面对懂车帝平台的前端异步渲染和复杂DOM结构,通过Playwright动态渲染、代理IP隐藏身份,以及BERT模型对HTML块级语义识别,实现了稳定高效的字段提取。此方法抗结构变化能力强,适用于复杂网页数据采集,如二手车、新闻等领域。架构演进从静态爬虫到动态爬虫再到语义解析,显著提升效率与稳定性。
200 13
用深度学习提升DOM解析——自动提取页面关键区块
|
12月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
286 2
|
11月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
2259 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
9月前
|
数据采集 存储 调度
BeautifulSoup VS Scrapy:如何选择适合的HTML解析工具?
在Python网页抓取领域,BeautifulSoup和Scrapy是两款备受推崇的工具。BeautifulSoup易于上手、灵活性高,适合初学者和简单任务;Scrapy则是一个高效的爬虫框架,内置请求调度、数据存储等功能,适合大规模数据抓取和复杂逻辑处理。两者结合使用可以发挥各自优势,例如用Scrapy进行请求调度,用BeautifulSoup解析HTML。示例代码展示了如何在Scrapy中设置代理IP、User-Agent和Cookies,并使用BeautifulSoup解析响应内容。选择工具应根据项目需求,简单任务选BeautifulSoup,复杂任务选Scrapy。
180 1
BeautifulSoup VS Scrapy:如何选择适合的HTML解析工具?
|
7月前
|
机器学习/深度学习 数据采集 存储
深度学习在DOM解析中的应用:自动识别页面关键内容区块
本文探讨了如何通过深度学习模型优化东方财富吧财经新闻爬虫的性能。针对网络请求、DOM解析与模型推理等瓶颈,采用代理复用、批量推理、多线程并发及模型量化等策略,将单页耗时从5秒优化至2秒,提升60%以上。代码示例涵盖代理配置、TFLite模型加载、批量预测及多线程抓取,确保高效稳定运行,为大规模数据采集提供参考。
152 0
|
9月前
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
204 4
|
9月前
|
数据采集 前端开发 API
SurfGen爬虫:解析HTML与提取关键数据
SurfGen爬虫:解析HTML与提取关键数据
|
10月前
|
Serverless 对象存储 人工智能
智能文件解析:体验阿里云多模态信息提取解决方案
在当今数据驱动的时代,信息的获取和处理效率直接影响着企业决策的速度和质量。然而,面对日益多样化的文件格式(文本、图像、音频、视频),传统的处理方法显然已经无法满足需求。
361 4
智能文件解析:体验阿里云多模态信息提取解决方案
|
12月前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href=&#39;example.com&#39;]` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
266 7

热门文章

最新文章

推荐镜像

更多
  • DNS
  • 下一篇
    开通oss服务