【发布时间】:2019-07-06 00:16:01
【问题描述】:
我一直在尝试使用 Nokogiri 和 HTTParty 抓取数据,并且可以成功地从网站上抓取数据并将其打印到控制台,但我不知道如何将数据输出到 repo 中的 xml 文件。
现在代码如下所示:
class Scraper
attr_accessor :parse_page
def initialize
doc = HTTParty.get("https://store.nike.com/gb/en_gb/pw/mens-nikeid-lifestyle-shoes/1k9Z7puZoneZoi3?ref=https%253A%252F%252Fwww.google.com%252F")
@parse_page ||= Nokogiri::HTML(doc)
end
def get_names
item_container.css(".product-display-name").css("p").children.map { |name| name.text }.compact
end
def get_prices
item_container.css(".product-price").css("span.local").children.map { |price| price.text }.compact
end
private
def item_container
parse_page.css(".grid-item-info")
end
scraper = Scraper.new
names = scraper.get_names
prices = scraper.get_prices
(0...prices.size).each do |index|
puts " - - - Index #{index + 1} - - -"
puts "Name: #{names[index]} | Price: #{prices[index]}"
end
end
我尝试将 .each 方法更改为包含 File.write() ,但它所做的只是将输出的最后一行写入 xml 文件。对于如何正确解析数据的任何见解,我将不胜感激,我是抓取新手。
【问题讨论】:
标签: ruby xml parsing web-scraping