rubyでサイトデータを自動つぶやくbotの作成方法

このQ&Aのポイント
  • rubyを使用して、指定したサイトからデータを取得し、自動でつぶやくbotを作成する方法を説明します。
  • サイトからデータを取得するためには、スクレイピングを行う必要があります。rubyのライブラリであるNokogiriを使用すると、簡単にスクレイピングができます。
  • 取得したデータをランダムに選び、TwitterのAPIを使用してつぶやくことができます。ハッシュを使用して取得したデータを格納し、ランダムに選ぶことができます。
回答を見る
  • ベストアンサー

rubyであるサイトのデータを自動でつぶやくbot

http://www.sanabo.com/words/ 上記サイトから言葉を拾ってきて、つぶやかせるという自動botを考えてます。 流れとしては、サイト上からスクレイピングしデータを切り取り(nokogiri)、それをハッシュ?の中に格納して、その値の中からランダムにつぶやかせる。という感じかなと思ってます。 ※TwitterのAPIはなんとか大丈夫です。 ですが、2点疑問があります。 01) サイト見てみると、「あ」…「お」など言葉がディレクトリごとに分かれており、どうやってアクセスして切り取ってくるのか不明?正規表現とか使うのでしょうか? 02) どういうふうにハッシュの中に値を入れるのか? ご教授いただけますでしょうか? よろしくお願いいたします。

  • Ruby
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4851/10265)
回答No.2

No1です。 まず、02の方は、Arrayに入れます。 words = [] 繰り返し開始  words << 取得した言葉 繰り返し終了 つぶやく言葉 = words.sample で、wordsというArrayから乱数で1つ選ばれます。 01の方は、HTMLのソースを見て、手動で単語を集めるとするとどうするかを考え、それをプログラムに直します。 プログラムをあまり書いたことが無いのであれば、 1.まずは自分がHTMLを見て単語を集めてみる 2.今度は、離れたところに居る見知らぬ人もそのHTMLを見ているとして、電話でその人に指示して単語を集めるとしたら何と指示するかを考える 3. 2の内容をプログラムに変換する という手順でやってみるといいかと思います。

sho27_2009
質問者

お礼

すみません、返信遅れました。。。 上記の方法で試してみます。 ありがとうございました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4851/10265)
回答No.1

Nokogiriをそれなりに使ってスクレイピングする知識があるという前提で、質問を眺めると、 01) が全くもって意味不明です。そういう目で見直すと、単語をランダムにつぶやくのに「ハッシュに入れる」というのも理由がわからない(普通はArrayに入れませんか?)。 もしかして、Nokogiriやスクレイピングは、単語を知っているだけで具体的なやり方は知らず、Rubyもほとんど知らないというレベルですか?それならそれで、回答のしようがあるのですが。

sho27_2009
質問者

お礼

回答ありがとうございます。 はい。おっしゃるとおりRubyのほとんどを知りません。。。 何か別の方法はあるのでしょうか? よろしくお願いいたします。

関連するQ&A

  • twitter、ツイッター のbotについて

    ツイッターのBOTって、 芸能人の名義で、その人の言葉を流す、 ということまでは理解できましたが… それを操作しているのは、誰なんですか? ツイッターの人ではないですよね? 2ちゃんのように暇な人が中で操作してるのでしょうか? 関係ないけど、 松岡修三のBOTが楽しいですw

  • ツイッターのキャラbotを簡単に作成するには?

    ツイッターで、ある乙女ゲームのキャラbotを作りたいのですが、どのサイトで作るのが一番簡単で手っ取り早いかよくわかりません。 私は携帯乙女ゲームのキャラbotの中で唯一botがまだないキャラのbot作成をゲーム関連で親しくさせていただいてるフォロワーさん達に任せられたので作ろうと思っています。ですが、botの作成サイトがけっこうたくさんあることを知ってどこにすればいいのかわかりません。 フォロワーさんの一人にすすめられた「twitbot」では、そのbotを作成するためのアカウントを入力しなければならないというよういなことが書いてあったのですが、これは私の普段使っているアカウントではなくもう一つアカウントを作成しなければいけないのかよくわかりませんでした。 他の人が使っているという「charabot」というサイトでは、アイコンや説明を入力するところで、どう入力すべきか、入力しなくていい項目なのかわからず断念しました。、 高校生でまったくの初心者なので、詳しく解説していただけるとありがたいです。また、もっといいサイトがあればそちらも教えていただきたいです。よろしくお願いします。

  • twitterのAPIキーの取得方法

    先日twitterのAPIの仕様が変更になりました。 そのため、今まで利用していましたBotサービスのサイトが停止してしまい、未だに復旧しておりません。 サイトの説明によれば、独自にAPIキーを取得して設定すれば個人単位では動作する。とのことでしたので、独自でAPIキーを取得することにしました。 以下のサイトでの取得が必要です。 https://developer.twitter.com/ja twitterにログインした状態で、このサイトにアクセスすると、ほぼ自動的にAPIキーが作成されます。 そしてダッシュボードにアクセスしてAPIキーを取得できるのですが、何故かAPIキーを表示することができません。(一部伏せ字になっています) どこかで確認ができると思うのですが、今のところ発見することができておりません。 もし出来上がっているAPIキーを確認する方法を御存知でしたらご指導をお願いいたします。

  • twitter bot のPHPファイルが編集できません

    こんにちわ。パソコン初心者です。 http://pha22.net/text/twitterbot.html こちらのサイトを参考に、ツイッターでbotを使用しようと試みたのですが、うまくいきません。私があまりに無知なのがいけないのですが… とりあえず分らない点を挙げますと、 (1)ダウンロードしたZipフォルダを解凍した中にある、数種類のファイルのうち、どれが必要なのかわからない (私は単にランダム発言させたいだけなので、 post_random.php と /Services と tw.txt が必要なのはわかるが、それ以外のファイルは削除してもいいのか? また残してあるファイルは、新たにフォルダを作らず、裸でデスクトップ等に保存しておいていいのか?→後でアップロードする時のことを考えると) (2)PHPファイルを編集するエディタがわからない (ホームページビルダー12でファイル自体を開くことは出来たが、文字コードや改行コードの変更の方法がいまひとつわからない。 このpost_random.php を編集できるフリーのPHPエディタなどはどれが最適なのか、わからない) (3)アップロードの方法がわからない (JCOMのアカウントを取得し、HPスペースを貰ってそこにFFFTPでアップロードしてみましたが、文字化けを起こしています。JCOMはPHPを受け入れないのでしょうか?それとも、何か設定を変更するとOKなのでしょうか? 最大の問題は、アップしたPHPファイルが文字化けしていることです。 私の編集環境に問題があるのは明白なのですが、どこがどう悪いのか素人すぎてわかりません。 twitterでbotを使われている方など、どなたかアドバイスをお願いできますでしょうか。 よろしくお願いいたします。

  • 自宅サーバーのcron設定について。

    最近twitterでbotを作り始めました。 プログラミングができなくても作れる~などの解説サイトを元に、 bot.phpへアクセスすればランダムで呟いてくれる、リプにもちゃんと返してくれる。まで辿り着きました。 しかし、cron設定がいまいちよくわかりません。 現在botのプログラミングは自宅サーバーからアップロードしており、 cronも自宅サーバーで可能とかいてあったので自宅サーバーで行おうと思っているのですが、 自宅サーバー利用者向けのcron講座が私の検索の仕方が悪いのかなかなか見つかりません; どこかオススメのサイト、もしくは方法はありませんか? 丸一日cronに費やしてしまいました…宜しくお願いします。

    • 締切済み
    • PHP
  • Nokogiriスクレイピングがうまくできない。

    Nokogiriスクレイピングがうまくできない。 RubyのNokogiriを利用して、下記サイトのデータを整理するためにスクレイピングをしようと思っています。 https://sv.j-cg.com/compe/view/entrylist/1274 具体的には、サイト中部の「登録デッキ」の一覧にある使用クラスのデータをまとめるプログラムを組もうと思っています(添付画像参照)。 XPathのサイトを参考にしつつ、試しにこの使用クラスの画像データをテキストで出力するため以下のコードを組んで実行しました。 require 'nokogiri' require 'open-uri' url = 'https://sv.j-cg.com/compe/view/entrylist/1274' charset = nil html = open(url) do |f| charset = f.charset f.read end doc = Nokogiri::HTML.parse(html, nil, charset) p doc.xpath('//img[contains(@src,"clans")]') ですが、 [] と表示されるだけで何も取得できません。 containsの引数を(取得対象のimg要素内の)どの値に変えて試しても、色んな表示が出はするのですが肝心の画像URLの部分が取得できません。 (ページのソースコードを見た所、使用クラスの判別が画像URLでしか出来ないため、URLをまず取得しないことには目的を達成できないだろう、という前提で話しています。) 私の推測では、どうやらURL部分だけjsonファイルらしい(他者には見られない)外部のファイルから引っ張ってきているため、プログラムから読み取ろうとしてもうまくURLを引用できないのだと思ってます。 ですが、ブラウザ上の検証ツールではURLが表示されるのにプログラムでは正しく読み込めないのが疑問です。 何にせよ、うまく使用リーダーを整理する方法があったら教えていただきたいと思います。 (ちなみにスクレイピングで画像URL等を取得した後のうまい整理方法も現段階ではよくわかっていないですが、とりあえずこのURLデータ取得だけでもまず理解してからということで質問をしています。)

  • ランダムな単語を得るAPIってありませんか? またはそれを実現するアイデアありませんか?

    やりたいことはPerlやPHPなどのサーバーサイドスクリプト上で、ひとつのランダムな日本語の単語を得る、ということです。 あらかじめデータベースにいれておきそこから取得しても、毎回どこかのAPIか何らかのサービスにアクセスして取得してもどちらでもいいです。 できれば後者の方が楽なのですが、一通り調べたところ、直接この要望に答えてくれそうなサービスはありませんでした。しかし、たとえば辞書サイトなどをうまく使えばいけそうな気がします。どのようにすればランダムな単語を簡単に得られるでしょうか? あるいは前者のあらかじめデータベース化しておくという方法についても、こうすれば簡単に大量の単語を取得できるよ、というのがありましたら教えてください。 ちなみに、perlを使ったスクレイピングは経験があります。 それから、これに関連した言語としてはphpとperlとmySQLしかやったことないので、できればその範囲内でおねがいします。

  • まとめサイトに厳しい検索エンジンはありますか?

    いつ頃からか、ブラウザで何か検索すると必ずまとめサイトばかりが上位に来る様になりましたね。 中には全く他人事な書きぶりもあり腹が立ちますが、他人の投稿や画像に権利はないのか疑問です。 -まとめで検索すると多少減らせる様ですが、それ以前に、まとめサイトに厳しい検索エンジンはあるのでしょうか? まとめサイトを駆逐したら、それこそ最近話題のTwitterの botアカウントみたいにごっそり減るのでは?と思いますが。

  • twitterの使い方をサイトで紹介したい。

    twitterの使い方をサイトで紹介したい。 twitterを利用する中で学んだ使い方や活用法などについて、自分のサイトで紹介したいと考えているのですが、これは著作権その他の法律に抵触してしまうのでしょうか? (もちろん、公式サイト等の「使い方」紹介をそのままコピペするのではなく、ちゃんとした自分の言葉で表現するつもりです。)

  • プログラミングについて

    自分は現在PHP,HTML,JavaScriptを勉強していて、何かサイトを作ってみようと考えています。 そこで、twitterのタイムラインの中から画像だけを抜き出して表示するサイトを作ってみようと思っています。しかし、どのようにすれば出来るのかがイマイチ分からないので必要な知識や参考になるサイトなど教えてもらいたいです。また、APIを使わないといけないみたいなのですが、使い方がよくわかりません。APIについても少し教えて頂けると助かります。

    • 締切済み
    • PHP