如何使用正则表达式解析HTML文件??

三国vip 发布于 2013/08/08 21:09
阅读 2K+
收藏 0

闲着没事想把自己浏览器中的书签网页全部保存成pdf的格式,便于离线浏览。但是遇到了个问题:

下面是我的书签及其HTML格式,本人不会使用正则表达式,目前通过网络搜索已经解决解析超链接的问题,就是我现在能把里面的超链接取出来,也能把里面的“百科、信息、社交……”等标题取出来,问题就是怎么样判断我取出来的超链接属于哪个标题呢,因为我想根据标题再建立不同的文件夹,不然全部的pdf放到一个文件夹里不容易查找。

各位大神,有没有好的办法啊?我是想利用正则表达式来解决,但是实在是不会啊,求高手帮忙啊!不甚感激。

我的思路是:遇到<H3>标签就建立一个文件夹,利用递归再遇到再建立,在建立的过程中查看当前  <DT><H3 …………</H3><DL><p>与</DL><p>标签之间含有的超链接,然后取出来调用方法生成pdf文档放在当前文件夹下。

现在关键是不会是用正则表达式进行分组。

Bookmarks

百度 Google

百科

XQuery WebBuilder JNDI Hadoop


开源中国


信息

eclipse快捷键备忘 [动态图]程序猿的真实生活 计算机是如何启动的? 构建现代化网站的 20 个技巧 每个程序员都应该了解的“虚拟内存”知识 每个程序员都应该了解的 CPU 高速缓存 2012 年十大最成功开源项目 20 个数据可视化(数据视觉化)工具 互联网 DBA 需要做那些事 CSDN免积分下载器 OSChina For PC首页、文档和下载


社交

Twitter Facebook Google+ 新浪微博


<!DOCTYPE NETSCAPE-Bookmark-file-1>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
  <DT><A HREF="http://www.baidu.com/index.php?tn=maxthon2&ch=7" ADD_DATE="1306301421" LAST_VISIT="1375931785" LAST_MODIFIED="1375931785">百度</A>
  <DT><A HREF="http://www.google.com.hk/webhp?client=aff-maxthon-newtab&channel=t18" ADD_DATE="1355884129" LAST_VISIT="1375863143" LAST_MODIFIED="1375863143">Google</A>
  <DT><H3 FOLDED ADD_DATE="1375661933">百科</H3>
  <DL><p>
      <DT><A HREF="http://baike.baidu.com/view/137314.htm" ADD_DATE="2147483647" LAST_VISIT="1373204123" LAST_MODIFIED="1373204123">XQuery</A>
      <DT><A HREF="http://baike.baidu.com/view/5233885.htm" ADD_DATE="2147483647" LAST_VISIT="1373202616" LAST_MODIFIED="1373202616">WebBuilder</A>
      <DT><A HREF="http://baike.baidu.com/view/209575.htm" ADD_DATE="2147483647" LAST_VISIT="0" LAST_MODIFIED="0">JNDI</A>
      <DT><A HREF="http://baike.baidu.com/view/908354.htm" ADD_DATE="2147483647" LAST_VISIT="0" LAST_MODIFIED="0">Hadoop</A>
  </DL><p>
  <DT><H3 FOLDED ADD_DATE="1375661933">开源中国</H3>
  <DL><p>
      <DT><H3 FOLDED ADD_DATE="1375661933">信息</H3>
      <DL><p>
          <DT><A HREF="http://my.oschina.net/hongbin/blog/14184" ADD_DATE="2147483647" LAST_VISIT="1375525694" LAST_MODIFIED="1375525694">eclipse快捷键备忘</A>
          <DT><A HREF="http://www.oschina.net/news/37907/life-of-programmer" ADD_DATE="1362028923" LAST_VISIT="0" LAST_MODIFIED="0">[动态图]程序猿的真实生活</A>
          <DT><A HREF="http://www.oschina.net/news/37824/how-computer-start-up" ADD_DATE="1362029264" LAST_VISIT="0" LAST_MODIFIED="0">计算机是如何启动的?</A>
          <DT><A HREF="http://www.oschina.net/translate/cross-browser-best-practices?from=20130317" ADD_DATE="1363749371" LAST_VISIT="0" LAST_MODIFIED="0">构建现代化网站的 20 个技巧</A>
          <DT><A HREF="http://www.oschina.net/translate/what-every-programmer-should-know-about-virtual-memory-part3" ADD_DATE="1363749394" LAST_VISIT="0" LAST_MODIFIED="0">每个程序员都应该了解的&ldquo;虚拟内存&rdquo;知识</A>
          <DT><A HREF="http://www.oschina.net/translate/what-every-programmer-should-know-about-cpu-cache-part2" ADD_DATE="1363749409" LAST_VISIT="0" LAST_MODIFIED="0">每个程序员都应该了解的 CPU 高速缓存</A>
          <DT><A HREF="http://www.oschina.net/news/36722/10-most-successful-open-source-project-in-2012" ADD_DATE="2147483647" LAST_VISIT="0" LAST_MODIFIED="0">2012 年十大最成功开源项目</A>
          <DT><A HREF="http://www.oschina.net/news/38857/20-data-visualization-tools" ADD_DATE="1364128647" LAST_VISIT="0" LAST_MODIFIED="0">20 个数据可视化(数据视觉化)工具 </A>
          <DT><A HREF="http://www.oschina.net/news/40002/things-internet-dba-should-know" ADD_DATE="1367117850" LAST_VISIT="0" LAST_MODIFIED="0">互联网 DBA 需要做那些事</A>
          <DT><A HREF="http://www.oschina.net/code/snippet_699222_21005" ADD_DATE="1367590497" LAST_VISIT="0" LAST_MODIFIED="0">CSDN免积分下载器</A>
          <DT><A HREF="http://www.oschina.net/p/oschina-for-pc" ADD_DATE="1373770927" LAST_VISIT="0" LAST_MODIFIED="0">OSChina For PC首页、文档和下载</A>
      </DL><p>
  <DT><H3 FOLDED ADD_DATE="1375661933">社交</H3>
  <DL><p>
      <DT><A HREF="http://twitter.com/" ADD_DATE="2147483647" LAST_VISIT="1375702891" LAST_MODIFIED="1375702891">Twitter</A>
      <DT><A HREF="http://www.facebook.com/" ADD_DATE="2147483647" LAST_VISIT="1375668158" LAST_MODIFIED="1375668158">Facebook</A>
      <DT><A HREF="https://plus.google.com/" ADD_DATE="2147483647" LAST_VISIT="0" LAST_MODIFIED="0">Google+</A>
      <DT><A HREF="http://weibo.com/" ADD_DATE="2147483647" LAST_VISIT="0" LAST_MODIFIED="0">新浪微博</A>
  </DL><p>
</DL><p>



加载中
1
mallon
mallon
不要想了,正则无法做到,用html/xml解析库
三国vip
三国vip
都是新东西,都不会啊
0
皮总
皮总
xpath 适合干这个事
三国vip
三国vip
Xpath还可以解析html?
0
ipenglei
ipenglei

换一个思路撒~

直接 利用 书签文件 生成批处理

bookmarks.htm -> bookmarks.bat

用正则来根据bookmarks.htm生成bookmarks.bat

ipenglei
ipenglei
回复 @曹波 : 看你怎么看这个问题了。。
三国vip
三国vip
生成批处理能解决我想解决的这个问题吗?
0
ipenglei
ipenglei
根据H1 H3生成不同的cd命令...
三国vip
三国vip
cd命令是什么东东?
0
乖猫的老公
乖猫的老公
还是直接找个html/xml解析库吧,什么事都给你做好了
三国vip
三国vip
确实,慢慢学吧
0
PYPlus
PYPlus
stackoverflow上有一个神级回答,就是讲正则解析HTML的可行性。谁知道网址的?
0
yidongnan
yidongnan
用jsoup吧
三国vip
三国vip
谢谢
0
kidbei
kidbei
Jsoup王道。。。。。
0
迷途蜗牛
迷途蜗牛
有引擎了,干嘛还自己正则写
返回顶部
顶部