Я использовал Ruby и Nokogiri для извлечения данных с URL-адреса, похожего на этот, с веб-сайта hollister: 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
Моя проблема в том, что страница Hollister имеет своего рода асинхронную загрузку данных, так что, когда мой скрипт проверяет область страницы с конкретными данными заказа для элемента страницы, она еще не существует. То есть <h3>
с data-property=GBL_ORDERNUMBERSYMBOL
еще не существует, но в браузере, если вы позволите ему загрузиться еще десять секунд, DOM и HTML изменятся, чтобы отразить конкретные детали заказа.
Каков наилучший способ захвата этих данных, которые загружаются постфактум? Я пытался использовать watir-webdriver, но не уверен, что мне нужно сделать, чтобы он тоже работал.