2016-09-10 4 views
8

Ruby、Selenium WebDriver、Nokogiriを使用して、Webページからデータを取得しています。適切なHTMLが読み込まれると、特定のクラスの内容を出力します。例えばボットを使ってブラウザを開いたり、手動でページを操作したり、ボットを使用したりすることは可能ですか?

require "selenium-webdriver" 
require "nokogiri" 
browser = Selenium::WebDriver.for :chrome 
browser.get "https://jsfiddle.net" 
doc = Nokogiri::HTML.parse(browser.page_source) 
doc.css('.aiButton').map(&:text).join(',') 

私がこれまで最も難しい部分が正しくロードされた正しいHTMLを取得していることで発見しました。たとえば、私が望むコンテンツはJavaScriptによって隠されているかもしれないし、別のページにあるかもしれない。

Seleniumを使用してページを読み込み、正しいHTMLが表示されるようにページを手動で操作することは可能ですか?次には、完了したコンテンツをボットで印刷することができますか?

+0

短い答えは「はい」です。 SeleniumはGUIでブラウザを開き、スクリプトが完了するまで開いています。 –

答えて

2

Seleniumを使用して、Webページとのやりとりを行うことができます。フォームフィールドの入力、ボタンのクリックなど。独自のJavaScriptコードを実行することもできます。

Selenium cheat sheet

編集:あなたは手動でWebページを操作できるように、コードの実行を停止するてこを使って

# Code for starting Selenium session and opening the web page 
... 

# Use pry to stop the code execution. 
# Resume the program using command 'exit' in the pry context 
require 'pry'; binding.pry 

# Code to get results after you manually manipulate the web page 
... 
+0

私はそれが最も時間のかかる部分であることを発見しました。その部分を手作業でやってから、ボットを再開する方法はありますか? –

+0

なぜあなたはそれをやるのか分かりません。セレンのドライバーは、手動でできるよりも速くウェブページと常にやりとりします。 –

+0

すべてのユースケースが異なるため、毎回異なるコードを書く必要があるためです。 HTMLを自分自身のものにするのは速いです。 –

-1

これは非常に簡単です。私はルビーに慣れていませんが、私はその過程を概説します。

))[続けるには、コンソールにここで入力したタイプのものとヒット」継続= raw_inputを(:

1)ドライバ 2)あなたのページ 3に行くを開始)、その後のpython 2などでユーザー入力(を求めます

4)他にもやりたいことをすべて実行してください。

このスクリプトを実行すると、質問で停止します。その後、ブラウザを手動で操作することができます。完了したらコンソール/ cmdウィンドウに移動し、「go」と入力してEnterキーを押します。その後、手動でブラウザを離れた場所から続行されます。

関連する問題