从HTML页面提取内容所面临的主要问题是,我们必须寻找一种方法精确地识别出自己想要的那一部分内容。
以下是利用正则表达式匹配并提取网页中特定信息的方法:
采集网页中所有链接标记:
<a[^>]*?>[\s\S]*?</a>
以上可以修改a标记采集对应的标记元素。
采集图片:
<img[^>]*?/?>
以上可以修改img标记采集对应的标记元素。
<div[^>]*?id="idname"[^>]*?>[\s\S]*?</div>
根据 id与 class 取div段的内容,请以最小单位取div,因为嵌套关系会破坏,取出来的标记不匹配。
如果要匹配的话请使用下面的正则表式:
<(?<HtmlTag>div)[^>]*\sid=(?<Quote>["‘]?)idname(?(Quote)\k<Quote>)["‘]?[^>]*>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|[\s\S]*?)*</\k<HtmlTag>>
对采集出来的html片段中链接地址去除:
<a(.[^>]*?)href(.[^>]*?)> 提取来替换成空。
再把</a>替换成空。
使用正则表达式提取网页有效信息,布布扣,bubuko.com
原文地址:http://www.cnblogs.com/binyue/p/3751982.html