前提・実現したいこと
Google検索後に表示された上位5記事の文字数をそれぞれ取得したい。
任意のキーワードを入力後にseleniumが起動
↓
検索結果の先頭ページ(1番目)に進む
↓
記事内の文字数を取得し、配列に入れる
↓
検索結果に戻る
↓
2番目のページに進む
↓
.
.
.
...という動作を5記事分までさせたいのですが、ネットで調べてもピンとくるものが見つかりませんでした。
以下のソースコードに関しましては、ただ単に「times」メソッドによって同じところをクルクル回ってるだけなので、配列に格納される値が同じものになることは理解しておりますが、理屈として"このようにクロールさせたい"というイメージです。
どうかご教授いただけますと幸いです。
よろしくお願いいたします。
該当のソースコード
ruby
1require "selenium-webdriver" 2require 'pry' 3 4 5keyword = gets.chomp 6d = Selenium::WebDriver.for :chrome 7 8d.navigate.to "https://www.google.co.jp/" 9inputElement = d.find_element(:name, 'q') 10inputElement.send_keys keyword 11inputElement.submit 12 13word_counts = [] 14 155.times do |count| 16 search = d.find_element(:css, "div.rc a") 17 search.click 18 content = d.find_element(:tag_name, "body") 19 word_counts << content.text.length 20 d.navigate.back 21end 22 23puts word_counts 24 25d.quit 26
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/11 11:24
2020/10/11 11:52