画像URLスクレイピング

投稿者: Anonymous

Ruby で画像URLをスクレイピングしたいです。

<div> 
<a href="URL" titile="xxx"> 
<img alt="yyy" src="ここのURLをクスレイピングしたいです> 
</a>

以下のように記述しました。

require 'mechanize'

agent= Mechanize.new 
page = agent.get("取得したいサイトURL") 
elements = page.search('a img')

elements.each do |ele| 
    puts ele.get_attribute('src') 
end 

そして、ruby scraping_image.rbをターミナルに記載しENZTERキーを押したのですが、ターミナルにただ大きな空欄が出来るだけで、何も欲しい情報が得られませんでした。
エラーメッセージ等は表示されませんでした。

違うタグを取得するように記述するべきだったでしょうか?
お願いします。

解決

質問のコードは私の手元でも動きました。間違いは無さそうです。
下記のようにsrc属性だけでなく、要素ごと出力して様子を見るとよいでしょう。

puts ele
puts ele.get_attribute('src') 

問題があるとすれば、取得しているWebページの構造です。
aタグの下にimgタグがあり、それがsrc属性を持っている」というのが想定する構造ですが、そうはなっていないのでしょう。
「空欄」が出力されたという事はimgタグは発見されているが、それにsrc属性が無いかsrcの値が空文字やスペースなのだろうと推測します。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *