Пробовал Webscraping с XPATH, Nokogiri, Mechanize

Я пытаюсь разбирать некоторую информацию с сайта saferweb, и у меня возникают проблемы с ее работой.

Если я смогу получить первое значение, я смогу адаптировать его, чтобы получить остальное...

В этом примере должен быть указан Carrier рядом с типом Entity Type

ИСТОЧНИК:

http://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=MC_MX&query_string=733709

механизировать w/hpricot

require 'rubygems'
 require 'mechanize'
 require 'hpricot'
 agent = Mechanize.new
 page = agent.get('http://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=MC_MX&query_string=733709')
 @response = page.content
 doc = Hpricot(@response)
 a = (doc/"/html/body/p/table/tbody/tr[2]/td/table/tbody/tr[2]/td/center[1]/table/tbody/tr[2]/td")[0].innerHTML
 a

Nokogiri

require 'nokogiri'
require 'open-uri'

doc = Nokogiri::HTML(open("http://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=MC_MX&query_string=733709"))
**** = doc.at("/html/body/p/table/tbody/tr[2]/td/table/tbody/tr[2]/td/center[1]/table/tbody/tr[2]/td").text
puts ****
1 ответ

Похоже, что все столбцы значений имеют один и тот же класс CSS, поэтому, вероятно, проще их использовать. Это работает для меня.

require 'nokogiri'
require 'open-uri'

doc = Nokogiri::HTML(open("http://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=MC_MX&query_string=733709"))
# Get Entity Type field
**** = doc.at('.queryfield').text
# Get rid of all the white space
****.gsub!("\u00A0", "").strip!
puts ****

licensed under cc by-sa 3.0 with attribution.