【问题标题】:NOKOGIRI - Get all the elements that contain a dollar signNOKOGIRI - 获取所有包含美元符号的元素
【发布时间】:2016-07-06 03:42:15
【问题描述】:

我正在尝试从所有购物网站获取一般价格

到目前为止我尝试了什么:

            price = doc.xpath('//span[contains(text(), "$")]').try(:first).try(:content)

            if (!price)
                price = doc.xpath('//div[contains(text(), "$")]').try(:first).try(:content)
            end

我尝试过的 html 示例: https://jet.com/product/adidas-Real-Madrid-Ball-15-5/a08713c229924ceca7171850680d3e32(此网址的 HTML)

这不是很好,我做错了什么? 谢谢大家

【问题讨论】:

  • 欢迎来到 Stack Overflow。阅读“How to Ask”和“minimal reproducible example”。您需要在问题中提供一个最小的 HTML 示例。 “这不是很好”是什么意思?错误?没有得到任何结果?它烧掉了大气层?

标签: ruby-on-rails ruby nokogiri


【解决方案1】:

你可以试试

Nokogiri: How to select nodes by matching text?

我做了一点改动,效果很好

require 'pp'
require 'nokogiri'

html = '
<html>
<body>
  <p>foo</p>
  <p>$bar</p>
</body>
</html>
'

doc = Nokogiri::HTML(html)
pp doc.at('p:contains("$")').text.strip

【讨论】:

  • 嘿,首先谢谢你。这里的问题是我不知道我要搜索哪个元素。在某些站点中,它可以是一个 div,而在其他站点中,它可以是一个跨度。我能做些什么 ?谢谢
  • 蜘蛛/抓取涉及对页面的深入了解。没有通用的、万能的代码可以准确地导航或抓取页面。换句话说,您将不得不弄清楚要搜索的内容。这就是编程难的原因,你必须弄清楚如何告诉计算机该做什么。
猜你喜欢
  • 1970-01-01
  • 2021-05-03
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
相关资源
最近更新 更多