2011-04-05 75 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