我正试图从Palm Beach County Sheriff's Office.
的警方记录中获取逮捕数据我将我的搜索范围限制在西棕榈滩市,可以追溯到数据(1974年10月31日)。
我正在使用FireFox。
当我得到结果时,我打开FireBug,查看HTML标签,我可以从页面上看到我想要的信息(即被捕人员的姓名,逮捕地址,收费等)。
我检查了网络>> XHR>>帖子标签以查找POST请求参数,但是将其放入我的代码中什么也没做。我对watir-webdriver是一个完全新手可能没有帮助。
这是我的代码:
require 'watir-webdriver'
require 'net/http'
require 'uri'
b = Watir::Browser.new
b.goto 'http://www.pbso.org/index.cfm?fa=blotter'
b.text_field(:name => 'start_date').set '01/01/1900'
b.text_field(:name => 'city_name').set 'West Palm Beach'
b.button(:name => 'process').click
是否有人知道是否可以获取响应页面HTML(即包含姓名,地址,犯罪等的HTML)?
答案 0 :(得分:1)
如果您想获取页面的HTML,可以执行以下操作:
puts b.html
或者将其限制为包含数据的表格的HTML:
puts b.table(:class, 'contentTxt').html
虽然您必须遍历所有结果页面。这样的事情,注意到你需要等到每次导航后出现结果。
at_end = false
begin
#Wait until the results appear
b.table(:class, 'contentTxt').wait_until_present
#Output the results
puts b.table(:class, 'contentTxt').html
#Go to next page if it exists
if b.link(:text => /Next/, :class => 'contentTxt').exists?
b.link(:text => /Next/, :class => 'contentTxt').click
else
at_end = true
end
end until at_end
答案 1 :(得分:1)
那个看起来不那么糟糕,我会用机械化代替:
require 'mechanize'
agent = Mechanize.new
form = agent.get('http://www.pbso.org/index.cfm?fa=blotter').forms[0]
form['captcha_id'] = -1
# page 1 of results
page = form.submit
# page 2 of results
form['fromrec'] = form['fromrec'].to_i + 5
page = form.submit
watir-webdriver和ajax更新结果的问题是当一个dom元素突然消失时你会得到的错误