2012-01-20 42 views
-1

這是問題:我使用的腳本停止查看第一個標記。如果閉合標籤出現在父項中,如何獲得兩個標籤之間的所有內容?

我正在瀏覽一個網站,這是我想要「提取」的網站的一部分。

<div class="i-want-this-div"> 
    <div class="annoying-sub-div"> 
     Bla bla bla 
    </div> 
    <div class="annoying-sub-div"> 
     etc... 
    </div> 
    <div class="annoying-sub-div"> 
    </div> 
    <div class="annoying-sub-div"> 
    </div> 
    <div class="annoying-sub-div"> 
    </div> 
</div> 

我要顯示所有那些「煩人」(因爲它們弄亂通過在那裏的腳本的功能)的div我的網站上,但我怎麼做到這一點?

這是我目前的做法:獲取第一個標記的位置,獲取結束標記的位置,並從包含整個網站源的整個字符串中減去該部分。

$startPos  = strpos($siteIAmScreaping, '<div class="i-want-this-div">'); 
$endPos  = strpos($siteIAmScreaping, '</div>', $startPos) + 8; 
$annoyingDivs = substr($siteIAmScreaping, $startPos, $endPos-$startPos); 

問題是:我希望它停止在主div上的結束標記,而不是它找到的第一個結束標記。

+1

這完全不清楚您要問什麼。 –

+0

我會編輯我的問題。 – SuperSpy

回答

-1

爲簡單起見,使用(或)。然後,您可以最容易地按類別或ID提取<div>內容:

print htmlqp($page)->find("div.i-want-this-div")->html(); 
0

使用DOMDocument這樣的東西。

+0

你能解釋一下嗎?如何獲得div.i-want-this-div標籤之間的所有內容? – SuperSpy

-1

你是說要顯示實際的代碼嗎?如果是這樣的話,把你的代碼放在pre標籤中。

<pre></pre> 

內一切將remail格式化,所有標籤/代碼將是可見的。

+0

我想只提取另一個網站的一塊。 – SuperSpy

+0

我想'偷'表。 – SuperSpy

相關問題