我一直在使用 Ruby 和 Nokogiri 从类似于 hollister 网站的 URL 中提取数据:http: //www.hollisterco.com/webapp/wcs/stores/servlet/TrackDetail? storeId=10251&catalogId=10201&langId=-1&URL =TrackDetailView&订单号=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
我的问题是 Hollister 页面有某种异步加载数据,因此当我的脚本检查页面区域以及页面元素的订单特定数据时,它还不存在。IE,<h3>
withdata-property=GBL_ORDERNUMBERSYMBOL
还不存在,但在浏览器中,如果你让它再加载十秒钟,DOM 和 HTML 会发生变化以反映特定的订单详细信息。
捕获事后加载的数据的最佳方法是什么?我曾尝试使用 watir-webdriver,但也不确定我需要做什么才能使其正常工作。