2016-10-03 148 views
0
<div class="description"> 
    <span>Product Code:</span> 
    " CODE"<br> 
    <span>Availability:</span> 
    " In Stock" 
</div> 

我試圖用簡單的html dom庫抓取一個網站,但我遇到了一個問題,因爲我需要的部分是標籤之外,沒有id /類。在php/web抓取中刪除字符串的特定部分

從上面的代碼。我需要的僅僅是產品代碼(CODE)。

我試圖通過刮類:

$code=$html->find('.description')[0]->plaintext; 

這是我得到:

產品代碼:CODE有效性:庫存

什麼我問的是如何刪除Product Code:Availability: In Stock,以便存儲在我的$代碼中的代碼是CODE。

注意:CODE是動態的,每個項目都會發生變化。如果你們可以爲我提供另一種解決方案,就像另一種定位HTML數據而不使用標籤,ID,類的方式,那將是非常值得讚賞的。

+1

它是一個HTML頁面,這意味着它是一個DOM樹** **。即使您在某個特定項目上沒有ID,也可以始終從已知點開始跟蹤樹枝。例如找到div.description節點,然後刪除該節點的子節點的跨度。 –

+0

是啊,那是我在想什麼,但事情是我不知道它正確的語法。我剛剛開始上週刮起來,簡單的html dom文檔有限。 – SGventra

+0

只是嘗試我的答案,你可以看到你想要的我剛剛編輯的代碼, –

回答

0

刪除div.description子跨度,你應該很好去。

編輯:MarcB在我之前發佈了這一分鐘。幹得好,充分信任他。

+0

是的,這就是我前面想的,但事情是我不知道它的正確語法。我剛剛開始上週刮起來,簡單的html dom文檔有限。我試過$ code = $ item-> find('。description!span') - > plaintext; -returns null。我試過$ code = $ item-> find('。description!span')[0] - > plaintext; -returns「產品代碼:」only – SGventra

0

也許是這樣!跨度排除不必要的內容

給一個嘗試.DESCRIPTION [!跨度]

+0

我試過$ code = $ item-> find('。description!span') - > plaintext; -returns null。我試過$ code = $ item-> find('。description!span')[0] - > plaintext; 「返回」產品代碼:「僅限。 – SGventra

+0

[!span]與[] – direxit

+0

我已經做了$ code = $ item-> find('。description [!span]') - > plaintext; -returns null。 $代碼= $用品 - >找到[跨度!] - >明文( '描述。');回報一切。 – SGventra

相關問題