質問: Nokogiri::HTML.parse(page.body.toutf8) #抽出するタグを指定する場所(//h3だとタイトルを貰えるみたい) encoded_page.xpath("//h3").each do |title| #出力する場所 puts "タイトル:#{title.text}" end end end ``` 一応これでキーワードを入力すると、上位10サイトの記事タイトルを出力してくれるようになりました。 ここからそれぞれのサイトの見出し(Hタグ)を出力させようとしたのですが、できませんでした。 教えていただきたいのは以下の2つです。 ・anemoneの階層を「0」から「1」にしたときに出てくる上位サイト以外のもの(Google画像検索など)を排除するコード ・1件の検索結果ごとにタイトルと見出しを出力させるコード 一部でもいいのでわかる部分があったら、アドバイスいただけると幸いです。 よろしくお願いいたします。
回答: Web上で公開するものをスクレイピングすることが違反になるとは思えませんが・・・ ましてや途中でエラーになるなんてことはないです、どうやって普通のブラウザによるアクセスとbotによるアクセスを区別するのでしょうか?user-Agentは簡単に偽装できます。 公開されているサイトをスクレイピング自体が問題になることはまずありません、 robot.txtの記述に従う、サーバーに高負荷をかけないように一定間隔を空けるようにするなどを守れば大丈夫でしょう 細かいことを恐れていたらどんなことにも挑戦できなくなります。 本題と外れてしまいましたが ``` encoded_page.xpath("//h3") ``` ここを工夫すればいけますよ。 xpathは複雑なことができますので、nokogiriの解説サイトはたくさんあるのでそちらで勉強するといいでしょう 参考サイト