Здравствуйте, я только что закончил следующие уроки: https://github.com/ryandhaase/Web-Scraper/blob/master/airbnb_scraper.rb и https://medium.com/@tabor_francesca/web-scraper-airbnb-24d67939b08a#.mg7ny2tke. И теперь я тренируюсь. У меня возникают проблемы с разделением подмассивов. Все работает, но я не могу разделить город, штат и почтовый индекс на отдельные столбцы excel.Разделение подмассивов в рубине nokogiri web scraper
Следующая строка является неверной, как я могу ее исправить?
city << [subarray[0], "this is not working", subarray[1]]
Мое предположение, что есть еще одна строка, которая должна быть исправлена.
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'csv'
url = "https://www.tesla.com/findus/list/stores/United+States"
page = Nokogiri::HTML(open(url))
page = Nokogiri::HTML(open("https://www.tesla.com/findus/list/stores/United+States"))
puts page.class
name = []
street_address = []
extended_address = []
city = []
state = []
zip = []
page.css('a.fn.org.url').each do |line|
name << line.text.strip
end
page.css('span.street-address').each do |line|
street_address << line.text
end
page.css('span.extended-address').each do |line|
extended_address << line.text
end
page.css('span.locality').each do |line|
subarray = line.text.strip.split(/ · /)
if subarray.length == 3
city << subarray
else
city << [subarray[0], "this is not working", subarray[1]]
end
end
CSV.open("teslaStores.csv", "w") do |file|
file << ["Name", "Street Address", "Street Address Continued", "City", "State", "Zip"]
name.length.times do |i|
file << [name[i], street_address[i], extended_address[i], city[i], city[i][0], city[i][1]]
end
end
что ошибка, вы получаете, кстати, выглядит например, вам не хватает 'end', чтобы закрыть' if subarray.length == 3'. – fanta
Что вы имеете в виду, эта строка неверна, и вам нужно ее исправить? Какая ошибка? Что случилось с результатом? –
Добро пожаловать в переполнение стека. Вам нужно немного поработать над вашим вопросом. Пожалуйста, прочитайте «[mcve]». Нам нужен минимальный код в вашем вопросе, чтобы продемонстрировать точную проблему, с которой вы сталкиваетесь, минимальный HTML в своем вопросе, чтобы показать проблему, а также ваш ожидаемый результат. Если вы упростите проблему/код, чтобы дублировать его, все будет хорошо, вы найдете решение; удалите CSV и сосредоточьтесь на поиске и извлечении данных, а затем разбивайте их в желаемый формат. «[ask]», и связанные страницы также помогут, особенно связанные страницы. –