我一直在使用Ruby和引入nokogiri从类似这样一个从霍利斯特网站的URL中提取数据:http://www.hollisterco.com/webapp/wcs/stores/servlet/TrackDetail?storeId=10251&catalogId=10201&langId=-1&URL=TrackDetailView&orderNumber=1316358如何从主页面加载后加载特定数据的页面中抓取数据?
我的脚本看起来像现在这种权利:
require 'rubygems'
require 'nokogiri'
require 'open-uri'
page = Nokogiri::HTML(open("http://www.hollisterco.com/webapp/wcs/stores/servlet/TrackDetail?storeId=10251&catalogId=10201&langId=-1&URL=TrackDetailView&orderNumber=1316358"))
puts page.css("h3[data-property=GLB_ORDERNUMBERSYMBOL]")[0].text
我的问题是,霍利斯特页面具有某种异步加载的数据,这样当我的脚本使用页面元素的特定于订单的数据检查页面区域时,该页面不存在。 I.E.,<h3>
与data-property=GBL_ORDERNUMBERSYMBOL
尚不存在,但在浏览器中如果让它再加载10秒,则DOM和HTML会更改以反映特定的订单详细信息。
什么是最好的方式来捕获这些事实后加载的数据?我尝试过使用watir-webdriver,但不知道我需要做些什么才能使这个工作。
我认为你的意思是异步加载的AJAX。 – Linuxios 2012-07-17 15:44:25
确保您遵守其使用政策。这对我来说并不明显,因为他们没有robots.txt,但这并不意味着您不必阅读其条件。 – 2012-07-17 19:28:52