社区
C#
帖子详情
一个稍微有点难度的问题:如何做HTML语法分析?
popcorn
2003-07-24 09:58:40
比如我要提炼出一个HTML文件中有多少个图片,多少个TABLE,多少个JS函数,多少个超级连接等等,然后还可以将超级连接提炼出来保存到数据库中去。象FP和DW的可视化编辑器都是如何提炼语法的?我试了很多正则表达式都很难达到理想效果,不知道哪里有好的算法去提取HTML中的标记?
提供思路、算法或者参考资料都给分。
...全文
111
14
打赏
收藏
一个稍微有点难度的问题:如何做HTML语法分析?
比如我要提炼出一个HTML文件中有多少个图片,多少个TABLE,多少个JS函数,多少个超级连接等等,然后还可以将超级连接提炼出来保存到数据库中去。象FP和DW的可视化编辑器都是如何提炼语法的?我试了很多正则表达式都很难达到理想效果,不知道哪里有好的算法去提取HTML中的标记? 提供思路、算法或者参考资料都给分。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
杨东明
2003-07-26
打赏
举报
回复
【利用 Microsoft 的 HTML 分析器来获得 Web 站点的数据】
http://www.microsoft.com/china/msdn/workshop/scrape.asp#top
看看就知道怎么做了,我想这样做才是最好的解决方案
大家一起学习....
dotnba
2003-07-26
打赏
举报
回复
听课
ArLi2003
2003-07-26
打赏
举报
回复
那用正则匹配就是了
popcorn
2003-07-26
打赏
举报
回复
楼上的理解错了,我要做的是字符串分析,不是用JS显示给客户看。
我想用正则表达式应该是最简单的了,思归给的参考方法也很不错。
ArLi2003
2003-07-26
打赏
举报
回复
var images = document.all.tags("IMG");
for (var iImgCounter = 0; iImgCounter < images.length; iImgCounter++) {
var imgTmp = images(iImgCounter);
var urlTmp = imgTmp.href;
.....
panyee
2003-07-25
打赏
举报
回复
其实每个生成的html页面都可以把它们提炼成一个xml文件, 你就寻找此文件中是否包含了<A>,
<TABLE> 这种标签的字符串, 取得它们的内容,
起始位置就是"<A...", 结束位置就是再找到一个"/A>"
然后再分析<a 里面的各个属性的名称和值,,
做起来也很有意思
可惜偶有其它东东要忙
erigido
2003-07-25
打赏
举报
回复
学习
xixigongzhu
2003-07-25
打赏
举报
回复
知道csc干嘛的把,它有个过程是词法分析器分析词法。
实际上html也是门语言,它也有词法分析器,如果不闲麻烦,可以做个简单点的词法分析器,来实现你的这些功能,这也不是很难的,只是有点麻烦。
正则表达式的话只要你的表达式精确,应该是没有问题的。
liduke
2003-07-25
打赏
举报
回复
正则表达式中不是有分组和命名捕获字符串有匹配这项吗?我觉得应该可行。
如从 URL 提取协议和端口号
String Extension(String url)
{
Regex r = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/",
RegexOptions.Compiled);
return r.Match(url).Result("${proto}${port}");
}
rqxiang
2003-07-25
打赏
举报
回复
gz
popcorn
2003-07-25
打赏
举报
回复
如果碰到都是规则的HTML代码还好,要是碰到写的不很规范的(但是你不能说有错),分析起来难度就大多了.不知道大家有什么好的建议?
saucer
2003-07-24
打赏
举报
回复
or get
GotDotNet User Sample: SgmlReader 1.1
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=B90FDDCE-E60D-43F8-A5C4-C3BD760564BC
saucer
2003-07-24
打赏
举报
回复
A Yacc grammar for HTML
http://www.di.unito.it/mail_archive/YACCHTML/0000.html
An Elementary HTML Parser
http://www.codeproject.com/csharp/HTMLParser.asp
popcorn
2003-07-24
打赏
举报
回复
JAVA中有类帮助实现,这里有篇JAVA的文章:
http://www.chinajavaworld.net/doc/lang/46.html
C#中又该如何做呢?
相关推荐
稍微
有点
难度
的10道java面试题,你会几道?
稍微
有点
难度
的10道java面试题,你会几道?
搭建mediawiki小记
作为
一个
完全不懂php的码农,整个过程还是
稍微
有点
难度
的。 废话不说先看效果 http://dev.cloudisk.snda.com/w/ 看起来还行是吧,至少没有想象中那么差。 好的,如何
做
? 首先需要准备一台服务器,推荐Linux服务器,搭建起来Lamp,不过本文Windows服务器也可以参考 这个过程相信很多人相当熟悉,但是还是有几个要注意的地方,不熟悉Lam
mapreduce secondarysort
mapreduce的二次排序,
稍微
有点
难度
,帮助你更好的理解它
hie2dcyl_2D_bem_
边界单元法,使用
难度
稍微
有点
高,语言是matlab的
一步步打造漂亮的新闻列表(无刷新分页、内容预览)(2)
在上一篇文章中,我们进行了需求分析,如下: 1。动态的新闻列表(这个很简单) 2。可以分页读取新闻列表(这个也不难) 3。可以无刷新的分页读取新闻列表(这个
稍微
有点
难度
) 4。可以预览新闻的内容(这个也
稍微
有点
难度
) 5。界面友好(这个是必须的) 按照软件工程的顺序,我们应按照这样的顺序开发软件:可行性分析===》需求分析===》概要设计===》详细设计=...
发帖
C#
C#
.NET技术 C#
复制链接
扫一扫
10.9w+
社区成员
64.2w+
社区内容
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2003-07-24 09:58
社区公告
让您成为最强悍的C#开发者