Nokogiri 示例未显示数组 (Ruby)



当我尝试通过终端运行它时,我可以解析/显示数据,但是当我输入pets_array = []

我什么也没看到

我的代码如下:

require 'HTTParty'
require 'Nokogiri'
require 'JSON'
require 'Pry'
require 'csv'
page = HTTParty.get('https://newyork.craigslist.org/search/pet?s=0')
parse_page = Nokogiri::HTML(page)
pets_array = []
parse_page.css('.content').css('.row').css('.result-title hdrlnk').map do |a|
  post_name = a.text
  pets_array.push(post_name)
end
CSV.open('pets.csv', 'w') do |csv|
  csv << pets_array
end
Pry.start(binding)
也许

准确地说,你可以访问每个锚标签,其中的类.result-title.hdrlnk.result-info.result-row.rows.content

page = HTTParty.get 'https://newyork.craigslist.org/search/pet?s=0'
parse_page = Nokogiri::HTML page
pets_array = parse_page.css('.content .rows .result-row .result-info .result-title.hdrlnk').map &:text
p pets_array
# ["Mini pig", "Black Russian Terrier", "2 foster or forever homes needed Asap!", ...]

使用 map 时,可以使用 pets_array 变量将文本存储在每个迭代元素上,无需推送。

如果要写入数组中存储的数据,那么可以直接推送,不需要重新定义为空数组(原因是你得到一个空白的csv文件(:

require 'httparty'
require 'nokogiri'
require 'csv'
page = HTTParty.get 'https://newyork.craigslist.org/search/pet?s=0'
parse_page = Nokogiri::HTML page
pets_array = parse_page.css('.content .rows .result-row .result-info .result-title.hdrlnk').map &:text
CSV.open('pets.csv', 'w') { |csv| csv << pets_array }

相关内容

  • 没有找到相关文章

最新更新