2011-04-05 36 views
0

我希望能够将特定内容从网站解析到mySQL数据库中。例如,在现场http://allrecipes.com/Recipe/Fluffy-Pancakes-2/Detail.aspx我想分析到我的数据库(其中有一个表列的RecipeName,成分1-10)。使用解析器将HTML内容解析到MySQL数据库中

所以基本上我的数据库将包含该配方的名称和所有成分。无需编辑内容,只需简单地解析它们(即3/4杯牛奶),因为我在数据库中使用了字符。

我该如何去做这件事?我正在寻找一个预先构建的解析器,看起来很难找到一个易于使用的解析器,因为我对编程相当陌生。当然,我可以手动输入值,但我想解析它们。

是否可以解析此内容并编写一个具有RecipieName,Ingredient字符串的文件,然后我可以将其解析到我的数据库中?或者我应该直接进入数据库?我不确定如何直接将数据库连接到解析器,但我可能能够在线查找某些信息。

基本上,我正在寻找关于如何正确地做这件事的帮助,因为我不是很精通编程,这似乎比它可能要复杂得多。

我现在正在使用Java作为我的主要语言,但我不能说我非常擅长它。但我应该能够理解基本概念。

有关使用什么解析器或如何执行此操作的任何建议?

谢谢!

+0

你使用什么程序语言? PHP的??? – Gowri 2011-04-05 03:43:57

回答

1

这就是我将如何在PHP中做到这一点。这几乎肯定不是最有效的方法,也没有调试过。

function parseHTML($rawHTML){ 
$startPosition = strpos($rawHTML,'<div class="ingredients"'); //Find the position of the beginning of the ingredients list, return the character number. 
$endPosition = strpos($rawHTML,'</div>',$startPosition);  //Find the position of the end of the ingredients list, begin searching from the beginning of the list (found in step 1) 
$relevantPart = substr($rawHTML,$startPosition,$endPosition); //Isolate the ingredients list 
$parsedString = strip_tags($relevantPart);     //Strip the HTML tags off of the ingredients list 
return $parsedString; 
} 

还有待完成:你说你有一个mySQL数据库,有10个独立的成分列。该代码将所有内容输出为一个大字符串。您必须将strip_tags($relevantPart)函数更改为strip_tags($relevantPart,"<li>")。那会让<li>标签通过。然后,您将不得不遍历每个<li>标签,执行与此类似的功能。它不应该太难,但我觉得在没有正常运行的PHP服务器的情况下编写它会感觉不舒服。

+0

好的谢谢你花时间帮忙,仍然困惑:)! – Eric 2011-04-05 04:11:16