質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

767閲覧

ファイルから指定のキーワードを読み込めるようにしたい

yuzujoe

総合スコア49

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/05/12 14:45

https://teratail.com/questions/188793

こちらの質問の続きですがキーワードを外部のファイル(例えばkeyword.txt)を読み込んでその入っているキーワードに対して検索結果を返したく質問致します

質問したい点が2箇所ございまして

先に今のコードを乗せます

CSV.open('math.csv', 'w') do |rank| rank << ["Keyword","Rank","Title","URL"] end keyword = "react" #ここに引数に.txtファイルで指定したものが入ってくるようにする result = GoogleSearch.new.scraping(keyword) result.each_with_index do |value, i| puts "----------------------------------------------------------------------------------------------------" puts "Keyword : #{keyword}" puts "Rank : #{i+1}" puts "URL : #{value[:url]}" puts "Title : #{value[:title]}" puts "----------------------------------------------------------------------------------------------------" # あとで使います CSV.open('math.csv', 'a') do |rank| rank << ["#{keyword}","#{i+1}","#{value[:title]}","#{value[:url]}"] end end

1、外部のファイルから読み込んだキーワードを変数keywordに入れたい
2。複数のキーワードがあった場合にそれを順番に処理してcsvファイルに結果を格納して欲しい。

この2点を実装したく知見のある方いらっしゃいましたらご意見など頂けますと幸いです。

参考記事

https://qiita.com/mogulla3/items/fbc2a46478872bebbc47

このあたりの記事をみて参考にはしています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/05/12 15:02

参考記事のページで情報は十分だと思いますが、何が分かりませんか?
yuzujoe

2019/05/13 16:53

ありがとうございます。 キーワードの読み込みはできているんですがそのキーワードをスクレイピングの検索ワードに応用できないのでその方法が知れたらと思いまして質問しております ``` CSV.open('math.csv', 'w') do |rank| rank << ["Keyword","Rank","Title","URL"] end keyword = File.open('keyword.txt') do |file| file.each_line do |line| puts line end end result = GoogleSearch.new.scraping(keyword) result.each_with_index do |value, i| puts "----------------------------------------------------------------------------------------------------" puts "Keyword : #{keyword}" puts "Rank : #{i+1}" puts "URL : #{value[:url]}" puts "Title : #{value[:title]}" puts "----------------------------------------------------------------------------------------------------" # あとで使います CSV.open('math.csv', 'a') do |rank| rank << ["#{keyword}","#{i+1}","#{value[:title]}","#{value[:url]}"] end end ``` 現状のコードはこちらになります情報が少なく大変申し訳ないです
otn

2019/05/14 01:28

プログラムはコメント欄じゃなくて質問文に書いてください。 上記コードだと、line が読み込んだデータです。
guest

回答1

0

自己解決

このようなコードで記述することで解決しました。

CSV.open('math.csv', 'w') do |rank|
rank << ["Keyword","Rank","Title","URL"]
end

File.open('keyword.txt') do |file|
file.each_line do |line|

keyword = line result = GoogleSearch.new.scraping(keyword) result.each_with_index do |value, i| puts "----------------------------------------------------------------------------------------------------" puts "Keyword : #{keyword}" puts "Rank : #{i+1}" puts "URL : #{value[:url]}" puts "Title : #{value[:title]}" puts "----------------------------------------------------------------------------------------------------" CSV.open('math.csv', 'a') do |rank| rank << ["#{keyword}","#{i+1}","#{value[:title]}","#{value[:url]}"] end end

end
end

投稿2019/05/14 15:31

yuzujoe

総合スコア49

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問