2016-09-28 1 views
1

크롤러는 크롤링하는 모든 웹 사이트에서 로고를 다운로드해야합니다.XPATH를 사용하여 * logo *라는 이미지를 찾는 방법 또는 * logo *라는 단어가있는 클래스가있는 방법?

그러나 내가 100 %의 정확도를 필요로하지 않는, 로고 인 이미지를 감지하는 것은 매우 어렵다, 그래서 난 그냥 다음 조건 중 하나라도 충족 <img> 태그를 찾고 생각하고 :

A를 <img> 태그의 이미지의 이름은 예를 들어,에서 단어 "로고"가 다음 <img> 태그

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

B에 class 또는 id 예를 들어, 단어 로고가 :

<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')] 

src, id 또는 class 속성은 텍스트 logo 들어있는 body 태그의 후손 인 모든 img 태그를 찾을 수있다.

+0

완벽하게 작동합니다. 정말 고맙습니다! –

+0

왜'/ html/body // img'인가? 왜 '// img'가 아닌가? 다른'img' 태그를 잘못 생각할 수도 있습니다. – Phrogz

+0

@Phrogz 'head' 태그 등을 들여다 보면 시간을 낭비하지 않는다면 더 효율적이라고 생각했습니다. :) –