Ruby 如何使用Mechanize更改dom节点输入并解析相关信息?
如何使用Mechanize更改dom节点输入并解析相关信息 我希望该网站显示从2010年起生产的一系列卡车,以便我可以解析相关信息 我希望它做什么:Ruby 如何使用Mechanize更改dom节点输入并解析相关信息?,ruby,mechanize,Ruby,Mechanize,如何使用Mechanize更改dom节点输入并解析相关信息 我希望该网站显示从2010年起生产的一系列卡车,以便我可以解析相关信息 我希望它做什么: 拜访 将“入学年份”(低制造年份)设置为2010年和2014年() 收集列出的所有卡车(以及2010年至2014年间生产的卡车)的相关信息 代码如下: require "mechanize" @url = "https://www.kleyntrucks.nl/vrachtwagens/trekker/" a = Mechanize.new d
require "mechanize"
@url = "https://www.kleyntrucks.nl/vrachtwagens/trekker/"
a = Mechanize.new do |agent|
agent.user_agent_alias = 'Mac Safari'
agent.follow_meta_refresh = true
end
a.get(@url) do |page|
# Put range input to "2010"
bouwjaar_range_field = page.search("#imprp0")
bouwjaar_range_details = bouwjaar_range_field.search(".details")
input = bouwjaar_range_details.search("input")[0]
input['value'] = "2010"
puts bouwjaar_range_field
end
这是输出:
<li id="imprp0" class="">
<a name="bouwjaar"></a>
<div class="title">Bouwjaar</div>
<div class="details">
<input type="hidden" name="slider_from" value="2010"><input type="hidden" name="slider_till" value="2014"><input type="hidden" name="slider_selected_from" value="0"><input type="hidden" name="slider_selected_till" value="0"><input type="hidden" name="slider_units" value="">
</div>
</li>
布贾尔
它没有显示我需要的所有与卡车相关的信息
有什么想法吗 不幸的是,您无法轻松地使用Mechanize,因为页面正在使用AJAX更新 与浏览器不同,Mechanize不会在页面上执行任何Javascript,因此在更改输入时不会通过AJAX更新结果 仍然可以使用Mechanize获取结果,但是您必须手动使用必要的参数(使用AJAX发布的请求;您可以使用开发人员工具查看)、发布和解析结果页面来创建请求