안녕하세요 방금 다음 자습서를 완료했습니다 : https://github.com/ryandhaase/Web-Scraper/blob/master/airbnb_scraper.rb 및 https://medium.com/@tabor_francesca/web-scraper-airbnb-24d67939b08a#.mg7ny2tke. 그리고 나는 지금 연습하고있다. 하위 배열을 나누는 데 문제가 있습니다. 모든 것이 작동하지만 도시, 주 및 우편 번호를 별도의 Excel 열로 나눌 수는 없습니다.ruby nokogiri 웹 스크레이퍼에서 분할 하위 배열
다음 줄이 잘못되었습니다. 어떻게 해결할 수 있습니까?
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
당신이지고있어 오류가 무엇을, BTW, 외모 이에
:
나는이를 변경했다 'if subarray.length == 3'를 닫는'end'가 없습니다. – fanta라인이 올바르지 않아서 고쳐야한다는 것은 무엇을 의미합니까? 오류가 무엇입니까? 그 결과에 무슨 문제가 있습니까? –
스택 오버플로에 오신 것을 환영합니다. 질문에 대해 더 많은 작업을해야합니다. "[mcve]"를 읽으십시오. 문제의 정확한 코드를 보여주기 위해 질문에 최소한의 코드가 필요하고 문제를 보여줄 질문에 최소한의 HTML과 예상되는 결과가 필요합니다. 문제를 단순화하면 코드가 중복되어 코드가 잘 나오지만 해결책을 찾을 수 있습니다. CSV를 제거하고 데이터를 찾아서 추출한 다음 원하는 형식으로 분리하십시오. "[ask]"링크 된 페이지, 특히 링크 된 페이지도 도움이 될 것입니다. –