0
Rubyのmechanize
gemでlink_with
関数を使用する方法を理解しようとしています。私がダウンして、基本的な考え方を持っている:機械化されたGoogleページをクリック
page = <site>
blah blah blah
next_page = page.link_with(:text => "Next")
page = link.click
それは私が少しテストでこれを使用する場合、それは非常にゆっくり行くようですが、私は何を抱き合わせてることはグーグルの最初の10ページをループであり、 time
変数が10からカウントダウンする変数time
を持つloop do
を使用しています。time
変数が0になると、プログラムがループから抜け出すことを望みます。それは動作しているようだが、それはGoogleの最初のリンクを引っ張って、そこにしか座っていない。
出典:
require 'mechanize'
require 'uri'
SEARCH = "test"
@agent = Mechanize.new
page = @agent.get('http://www.google.com/')
google_form = page.form('f')
google_form.q = "#{SEARCH}"
url = @agent.submit(google_form, google_form.buttons.first)
url.links.each do |link|
if link.href.to_s =~ /url.q/
str = link.href.to_s
str_list = str.split(%r{=|&})
urls = str_list[1]
urls_to_log = URI.decode(urls)
puts urls_to_log
time = 10
loop do
next_page = page.link_with(:text => 'Next')
page = link.click
time -= 1
end
if time == 0
break
end
end
end
私は、参照hereのビットを発見しました。しかし、それは私が理解する点でそれを実際に説明していない。
これは最初のリンクに配置されていてどこにもどこに間違っていますか?
は、GoogleのAPIを使用してに見たことがありますか?あなたのページを掻き分けているなら、あなたのIPを禁止する確率は良いです。 –
私は禁止について心配していません。その周りに方法があります。リンクをクリックする方法を理解しようとしています。 – 13aal
多くの混乱がここにあります。 'next_page'はリンクであり、ページではないので、私はソートを開始します。 – pguardiario