【问题标题】:Ruby on rails scraping HTML with nokogiriRuby on rails 使用 nokogiri 抓取 HTML
【发布时间】:2016-04-18 00:48:14
【问题描述】:

我正在尝试抓取每个列表的链接和标题,但它似乎不起作用。

require 'nokogiri'
require "net/http"
require "uri"
require "json"
require 'pry'

final_url = 'https://www.gutenberg.org/ebooks/search/?query=pilgrims+progress'
final_url_uri = URI.parse(final_url)
response = Net::HTTP.get_response(final_url_uri)
response_body = response.body

parse_response = Nokogiri::HTML(response_body)

gberg_array = []

parse_response.css('booklink > .title, .subtitle').map do |a|
    post_title = a.text
    gberg_array.push(post_title)
end

link_array = parse_response.css('li.booklink a').map { |link| link['href'] }

pry.start(binding)

【问题讨论】:

  • 您能否添加对您的预期以及您的代码产生的输出的描述?
  • 我已经改写了您的问题并删除了一些内容。请务必提出一个好问题,您必须解释“它不起作用”的确切含义:会发生什么?你预计会发生什么?

标签: ruby-on-rails ruby


【解决方案1】:

让我们看看你的选择器。

'booklink > .title, .subtitle'

1) booklink 会寻找标签 <booklink> 我想你想寻找 li 类 booklink 就像你为链接所做的那样:

'li.booklink ...'

2) 使用选择器查找具有title 类的元素:

'li.booklink .title'

您从每个.title 元素中获取文本并将其插入到数组中的技术应该可以工作。您可能需要添加 strip 以消除尾随的新行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多