解析网站HTML的最快/最简单的方法?

时间:2011-09-07 10:54:26

标签: mysql database html-parsing

我需要解析this网站的内容并将其存储在MySQL数据库中。我正在创建一个竞争者网站,因为创建者从未完全完成他的,但他有比我更新的游戏数据而且不会发布它,所以我需要手动收集它。 Here是我需要解析的特定类型页面的示例。

我之前使用PHP和正则表达式进行了HTML解析,但这很痛苦,而且我宁愿不再麻烦。由于这个问题,我几个月来一直拖延完成我的数据库。是否有更快和/或更简单的方法来解决这个问题?大多数C风格的语言对我来说都很好(C,C ++,Perl,PHP,Python等,都很好,但不是C#,Java或Objective-C)。

P.S。:我不在乎脚本/程序有多脏,或者类似的东西,只要它完成工作。

5 个答案:

答案 0 :(得分:1)

我使用http://htmlagilitypack.codeplex.com/http://code.google.com/p/fizzler/来解析HTML并获取必要的信息。它运作得很好。

答案 1 :(得分:1)

几个月前我就这样做了,经过一番调查后我决定选择LXML python库。请参阅解析教程here。是的,它不仅适用于xml解析,也适用于HTML。

我喜欢它,因为它功能强大,易于使用。

答案 2 :(得分:1)

您提到的任何语言都可以这样做,只要您使用正确的第三方库来帮助您。

您需要抓取网站的内容。实际上,这可能是一个完全不同的程序,只需将.html文件下载到您的计算机上,然后您就可以让解析器运行了。这样的机器人存在,考虑wget或curl - 它们都有蜘蛛选项。

您需要为该网站提供解析器。不要使用regexp来解析HTML,使用HTML或XML解析器(如Perl的HTML::Parser)。然后,您必须将生成的数据结构转换为可用数据(例如,第一个表> tr> td是怪物名称,第二个td是种族等等。

最后,您需要将这些内容存储到您的数据库中,以便以后可以为您的网站提供服务。

实际上,编写代码并不是最困难的事情,但是“页面上的哪个项目意味着什么,应该存储在何处以及如何存储”的映射。

答案 3 :(得分:1)

你可以使用php和simpleHtmlDom来解析html,而simpleHtmlDom非常容易..

http://simplehtmldom.sourceforge.net/manual.htm

答案 4 :(得分:-1)

只需使用嵌入字符串mysql函数,无需编写代码即可在您的计算机上运行,​​使您的mysql服务器完成所有工作。

SUBSTRING(page, INSTR(page, '<title>')+7,(INSTR( page, '</title>'))-(INSTR( page, '<title>')+7) )

实施例

UPDATE url2 SET title = SUBSTRING(page,INSTR(page,'')+ 7,(INSTR(page,'')) - (INSTR(page,'')+ 7))

或通过

进行测试

SELECT SUBSTRING(页面,INSTR(页面,'')+ 7,(INSTR(页面,'')) - (INSTR(页面,'')+ 7)),页面  来自url2  在哪里url ='http://en.wikipedia.org/wiki/File:Nag_Nathaiya_festival_in_Varanasi.jpg';