我需要转换一个大型网站从静态的html完全由人类编写成适当的关系数据。首先是大量的表(不一定每个页面都是一样的),然后是这样的代码:
<a name=pidgin><font size=4 color=maroon>Pidgin</font><br></a>
<font size=2 color=teal>Author:</font><br>
<font size=2>Sean Egan</font><br>
<font size=2 color=teal>Version:</font><br>
<font size=2>2.6.8</font><br>
<font size=2><a href="http://pidgin.im/"><br>
<img src="images/homepage.jpg"></a>
</font><br>
<br><br><br>
<a name=psi><font size=4 color=maroon>Psi</font><br></a>
<font size=2 color=teal>Version:</font><br>
<font size=2>0.13</font><br>
<font size=2 color=teal>Screenshots:</font><br>
<a href="images/screenshots/psi/1.jpg">
<img src="images/screenshots/psi/1_s.jpg">
</a>
<a href="images/screenshots/psi/2.jpg">
<img src="images/screenshots/psi/2_s.jpg">
</a><br>
<br><br><br>然后又是几张桌子。我曾尝试使用HTML解析器并查找name,但总会丢失一些条目:有时,由于平民编写的不是经过良好蠕虫感染的html,它会认为一些条目相互之间,而不是平面列表。现在,我使用一些Vim正则表达式组合到一个函数中,将这些代码转换为XML,但这也不是什么灵丹妙药:大多数输出文件都不是格式良好的,因为一些HTML插入了进来。
所以我想知道有哪些工具可以完成这样的任务?
发布于 2009-08-09 19:59:23
要做的第一件事是通过像HTML Tidy这样的工具抛出输入的超文本标记语言,以至少确保它是有效的(X)超文本标记语言。然后,我将使用某种基于dom的解析(而不是reg-ex)来遍历代码。
发布于 2009-08-09 19:56:56
如果您对Python感到满意,那么BeautifulSoup就是用来解决这个问题的:
“你没有写那个糟糕的页面。你只是想从中获取一些数据。”
我以前使用过BeautifulSoup来做这类工作,它非常好用。
https://stackoverflow.com/questions/1252099
复制相似问题