2015-01-09 3 views
0

Я пытаюсь проанализировать следующие website для широты и долготы, содержащихся в всплывающем окне, и не может показаться, что он работает. Я использую Watir и Nokogiri в Ruby. Код приведен ниже:Разбор веб-страницы с использованием Watir/Nokogiri в Ruby

require 'watir' 
require 'nokogiri' 
require 'win32ole' 
require 'open-uri' 

# Get filename from user 
puts "What is the name of the excel file?" 
file_name1 = gets.chomp 
file_name2 = file_name1 << '.xlsx' 

# WIN32OLE 
excel = WIN32OLE::new('excel.Application') 
excel.visible = true 
filepath = excel.Workbooks.Open('C:/users/desktop/ruby/' << file_name2) 

url = 'http://webapps2.rrc.state.tx.us/EWA/drillingPermitsQueryAction.do' 

# Excel Column Headers 
excel.worksheets(2).Cells(1,12).value = "Latitude" 
excel.worksheets(2).Cells(1,13).value = "Longitude" 

# Watir 
browser = Watir::Browser.new # opens new IE browser 
browser.speed = :zippy 
browser.goto url # goes to RRC page 

row = 2 

while excel.worksheets(2).Cells(row,5).value.nil? == false 
browser.text_field(:name, 'searchArgs.apiNoHndlr.inputValue').set excel.worksheets(2).Cells(row,5).value.to_s[0..7] 
    browser.button(:value, 'Submit').click # Clicks the submit button 
    browser.select_list(:name, "propertyValue").select 'GIS Viewer' 
    page_html = Nokogiri::HTML.parse(browser.html) 
    latitude = page_html.css("#printIdentifyWellDiv > table:nth-child(5) > tbody > tr:nth-child(7) > td").text.strip 
    longitude = page_html.css("#printIdentifyWellDiv > table:nth-child(5) > tbody > tr:nth-child(8) > td").text.strip 
    excel.worksheets(2).Cells(row,12).value = latitude 
    excel.worksheets(2).Cells(row,13).value = longitude 
    browser.window(:title => "RRC Public GIS Viewer").use do 
     browser.button(:id => "close").click 
    end 
    browser.button(:value, 'Return').click 
    row += 1 
end 

puts "Complete" 

Проблема заключается в строках 34 и 35 (переменные широты и долготы). Nokogiri, похоже, не может разобрать их из всплывающего окна и переместить их в файл Excel. Я пробовал использовать путь Xpath и CSS, но не имел никакого успеха. Каждый раз, когда я запускаю программу, соответствующий файл Excel заканчивается пустым в столбцах широты и долготы.

Вопросы:

  1. Как я могу разобрать данные?
  2. По мере выполнения моей программы экран карты, связанный выше, отображается на второй вкладке в браузере.

Это проблема для Watir/Nokogiri? Нужно ли мне как-то выбрать эту вкладку в программе для Нокогири, чтобы ее разобрать?

Спасибо за ваше время.

ответ

0

Как только вы открываете всплывающее окно, вы должны сообщить watir, чтобы использовать всплывающее окно, иначе browser.html все равно будет из главного окна.

Переместить эту строку:

browser.window(:title => "RRC Public GIS Viewer").use do

вверх до browser.html вызова

+0

Спасибо Titus, что решить мою проблему. Я ценю ваше время – Troy

Смежные вопросы