2016-09-28 7 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')] 

srcidまたはclass属性がテキストlogoが含まれているbodyタグの子孫であるすべてのimgタグを見つけることであろう。

+0

これは完全に機能します。どうもありがとうございます! –

+0

なぜ '/ html/body // img'ですか?単に '// img'だけではないのですか?あなたが想像している他の 'img'タグは間違って見つかるかもしれませんか? – Phrogz

+0

@Phrogz 'head'タグなどを見て時間を浪費しなければ、もっと効率的だと思いました:) –

関連する問題