2013-10-03 47 views
0

我正在嘗試獲取頁面上第二個標記的內容。我無法找到它,但希望可以從下到上進行解析,以便按順序查找第二個標籤,而不是將所有內容都放入數組中,並從最後一個元素中計算出一個。反向工作的原因是我從中拉動的頁面是動態的,可能有數百個標籤比我想要發生的工作更多。簡單的HTML DOM向後解析

回答

0

似乎沒有辦法向後解析,所以我使用以下方法獲取數組中的所有標籤,使用count()獲取總數,然後訪問數組,比總數少兩個的元素。

$html = $datain->find('a'); 
$html_ind = $html[count($html)-2]; 
$result = $html_ind->plaintext; 
1

對於任何動態頁面,您的請求時間必須爲「靜態」,但下次可能會更改。按照相反的順序解析頁面是沒有意義的,就我所知,html頁面沒有逆序解析器算法。

這裏是我的解決方案:在大多數情況下,動態頁面也相對'靜態',頁面的標題始終位於頂部,頁腳始終位於底部。

你需要做的只是找出'靜態'標籤與最後一個相關。

假設你想在這個stackoverflow頁面的底部獲得整行版權信息。這是一個合適的假設,因爲版權信息幾乎是該頁面的倒數第二個標籤,而且這個頁面顯然是動態的。

我可以找到它的id是:// * [@ id =「copyright」](實際上它是一個xpath,不是一個id,但在這裏並不重要)。你可以看看這個頁面的源文件,或者更簡單地使用諸如firebug或digpage等工具。 id(xpath)相對「靜態」。

當我在這裏回答你的問題時,這個頁面上沒有任何答案。但是,當你閱讀這篇文章時,我的答案會被插入到這個頁面中,並且頁面肯定會改變。但是,版權信息的xpath仍然是// * [@ id =「copyright」]。換句話說,digpage仍然可以爲你獲得正確的標籤。

這裏是版權informatin我從digpage得到之前,我提交了答案:

site design/logo © 2013 stack exchange inc; user contributions licensed under cc-wiki 
      with attribution required 

你可以自己(http://www.digpage.com/utility)再次嘗試,它不會改變。