2016-09-28 94 views
1

我正在創建一個爬網程序,它需要從它爬網的每個網站下載徽標。如何使用XPATH查找名爲* logo *的圖像,或者其中包含帶有* logo *的類的圖像?

這是相當難以察覺其形象標誌,但我並不需要100%的準確率,所以我想的只是尋找<img>標籤來滿足任何下列條件:

A.在<img>標籤圖像的名稱具有單詞「標誌」在裏面,例如:

<img src="logo.gif"> 
<img src="site-logo.jpg"> 
<img src="mainlogo.png"> 

B.該classid<img>標籤中有字的標誌,例如:

<img class="logo" src="something.gif"> 
<img id="main-logo" src="something.gif"> 
<img class="background logo" src="something.gif"> 

我試過了W3C XPATH documentation,但它不是非常用戶友好。我也嘗試使用應該是通配符的東西(根據w3schools),但他們似乎沒有按預期工作。

是否有可能使用XPATH實現我想要的功能?你能幫忙提供一些指針或示例代碼嗎?

謝謝。

回答

2

你可以使用:

/html/body//img[contains(@src, 'logo') or contains(@id, 'logo') or contains(@class, 'logo')] 

它會發現所有img標記,是body標籤,其中srcidclass屬性包含文本logo的後裔。

+0

這很好用。非常感謝! –

+0

爲什麼'/ html/body // img'?爲什麼不只是'// img'?你認爲還有什麼'img'標籤可能被錯誤地發現? – Phrogz

+0

@Progro我覺得它會更有效率,如果它不浪費時間在'head'標籤等:) –