2010-05-04 57 views
1

我試圖從網頁中使用php cURL + preg_match或任何其他函數提取一些信息,但由於某些原因它根本不起作用。 例如,從this page, 我想提取「4牀房子出租, Caroline Place,Bayswater,W2」的標題,價格是「2,300」,並且以「This fantastic ... 「並結束於」(Circle and District Lines)「。 我試圖使用PHP cURL + DOM,但我得到了很多像這樣的錯誤「htmlParseEntityRef:expectcting';'在實體,行:243「和沒有結果顯示從一個html文檔中提取特定的部分,php cURL,php,preg_match

另外我試圖使用preg_match或preg_match_all但也不工作。

一個非常基本的例子將不勝感激!

+1

我認爲,DOM解決方案無法正常工作,因爲頁面無效xhtml或xml – Michael 2010-05-04 18:43:08

+0

也許發佈您嘗試過的正則表達式不起作用。這些模式看起來非常簡單。 – serg 2010-05-04 18:46:23

+0

**不要使用正則表達式來解析HTML **,而是使用[html dom解析器代替](http://simplehtmldom.sourceforge.net/)它支持無效的HTML。 – 2011-08-18 00:25:30

回答

1

一個非常基本的例子是高度 理解

要回答的正則表達式的一部分:

preg_match('!<title>(.*)</title>!s', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
<title> 

      4 bedroom 


     house 


    to rent in Caroline Place, Bayswater, W2 through Foxtons (Property to rent)</title> 
<meta name="keywords" content="Houses" />', $matches); 
print_r($matches); 

/* output: 
Array 
(
    [0] => <title> 

      4 bedroom 


     house 


    to rent in Caroline Place, Bayswater, W2 through Foxtons (Property to rent)</title> 
    [1] => 

      4 bedroom 


     house 


    to rent in Caroline Place, Bayswater, W2 through Foxtons (Property to rent) 
) 
*/ 

s在正則表達式的結尾使解析器弄成(inaptly)稱爲single-line mode

+0

非常感謝您的幫助。我成功地製作了一個腳本來提取我需要的信息,但我仍然對價格有一些問題。我有這個: preg_match('!

-1

通過curl獲取數據後,結果中有許多新的行和空格。 因此,執行一些乾淨的html腳本以刪除這些新的行和空格。 最後,有一個愉快的preg_match

相關問題