2016-11-03 11 views
2

次のコードを使用して、ウェブページから特定の画像をスクラップしています。このページには画像タグ付きの複数の画像があるので、このコードはどのように解釈していますか?私はそれが画像タグ付きの最初の画像だけを保存することに気づいた。これは一般的に真実ですか?Nokogiriを使用して画像を保存する

私は、このコードがCSSを上から下に読み始めたことを正解しています。イメージタグを持つ最初のイメージを見つけたら、それを保存してさらに見えなくなりますか?私はそれをするために必要なので。

PAGE = "http://example.com/page.html" 
require 'nokogiri' 
require 'open-uri' 
html = Nokogiri.HTML(open(PAGE)) 
src = html.at('.image')['src'] 
File.open("foo.png", "wb") do |f| 
    f.write(open(src).read) 
end 
+0

これは最初の '.image'要素をつかみ、' src'属性をダウンロードします。それはすべてのイメージを気にしません。もしそれができたら、 'at'の代わりに' css'メソッドを使います。おそらく '.css( 'img')'を使いたいと思うでしょう。 – tadman

+0

クラス 'image'またはすべての' img'sの要素を探したいですか? – nloveladyallen

答えて

0

はい、

  • html.at最初にマッチした要素のみ
  • html.searchが一致するすべての要素に

を見つける見つけることは、あなたの質問に答えるのか?関連ノートで


  • html.at(".image")は、それが
  • html.at("img.image")class="image"
  • html.at("img")との最初の<img>要素が最初に見つけた見つけ例えば<div>タグであったとしてもclass="image"を持つ任意の要素を見つけます<img>要素
関連する問題