Nie*_*ian 3 ruby mechanize nokogiri
我使用Mechanize循环遍历一个分页的表.
我有一个包含多个提交输入的表单的问题.输入标记用作分页,它们是动态生成的.当我循环浏览需要抓取的页面时,我需要能够选择正确的输入,因为只有其中一个会将我带到"下一页".正确的标签可以通过不同的属性来识别,例如名称,类,价值等.我的问题是,我无法找到如何告诉机械化使用哪一个.
我试过这个:
require 'mechanize'
require 'yaml'
url = "http://www.somewhere.com"
agent = Mechanize.new
page = agent.get(url)
loop do
puts "some content from site using nokogiri"
if next_page = page.form_with(:action => /.*/)
page = next_page.submit(page.form_with(:action => /.*/).submits[3])
else
break
end
end
Run Code Online (Sandbox Code Playgroud)
从这篇文章,http://rubyforge.org/pipermail/mechanize-users/2008-November/000314.html,但正如所说的那样,标签的数量正在发生变化,所以只选择一个硬编码的提交数量并不是一个好主意.
我想知道的是,如果有这样的方式:
loop do
puts "some content from site using nokogiri"
if next_page = page.form_with(:action => /.*/)
page = next_page.submit(:name => /the_right_submit_button/)
else
break
end
end
Run Code Online (Sandbox Code Playgroud)
或类似的东西,可能有一个css或xpath选择器.
我通常form.button_with用来选择右键来点击:
form = results_page.forms[0]
results_page = form.submit(form.button_with(:name=>'ctl00$ContentBody$ResultsPager$NextButton'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2258 次 |
| 最近记录: |