gpt4 book ai didi

ruby-on-rails - 如何在Rails中使用Nokogiri从URL获得HTML正文?

转载 作者:行者123 更新时间:2023-12-04 06:07:26 24 4
gpt4 key购买 nike

我想从URL解析正文属性。

例如:

url = 'http://rca.yandex.com/?key=rca.1.1.20140120T051507Z.3db118ab435efdff.6c84331313b6b7d66abd191410f72e0e1c3c8795&url=http://endtimeheadlines.wordpress.com/2014/01/17/think-tank-extraordinary-crisis-needed-to-preserve-new-world-order/#comment-36708?utm_source=twitterfeed&utm_medium=facebook[&callback=http://64.191.99.245:3023/posts][&full=1]'

当我尝试时:
page = Nokogiri::HTML(html)

我得到:
#<Nokogiri::HTML::Document:0x52fd6d6 name="document" children=[#<Nokogiri::XML::DTD:0x52fd1f4 name="html">, #<Nokogiri::XML::Element:0x52fc6aa name="html" children=[#<Nokogiri::XML::Element:0x5301f56 name="body" children=[#<Nokogiri::XML::Element:0x53018d0 name="p" children=[#<Nokogiri::XML::Text:0x53015f6 "http://rca.yandex.com/?key=rca.1.1.20140120T051507Z.3db118ab435efdff.6c84331313b6b7d66abd191410f72e0e1c3c8795&url=http://endtimeheadlines.wordpress.com/2014/01/17/think-tank-extraordinary-crisis-needed-to-preserve-new-world-order/#comment-36708?utm_source=twitterfeed&utm_medium=facebook[&callback=http://64.191.99.245:3023/posts][&full=1]">]>]>]>]>

如何获取此URL中的属性?

例如: page.css("div")。我想从HTML body获取值。

最佳答案

目前尚不清楚您要做什么,但这可能会有所帮助:

require 'nokogiri'

html = '<html><head><title>foo</title><body><p>bar</p></body></html>'

doc = Nokogiri::HTML(html)

使用 at ,您将发现标记的首次出现,这在HTML文档中是明智的,因为您应该只有一个 <body>标记。
doc.at('body') # => #<Nokogiri::XML::Element:0x3ff194d24cd4 name="body" children=[#<Nokogiri::XML::Element:0x3ff194d24acc name="p" children=[#<Nokogiri::XML::Text:0x3ff194d248c4 "bar">]>]>

如果要使用标记的子代,请使用 children检索它们:
doc.at('body').children # => [#<Nokogiri::XML::Element:0x3ff194d24acc name="p" children=[#<Nokogiri::XML::Text:0x3ff194d248c4 "bar">]>]

如果要将子节点获取为HTML:
doc.at('body').children.to_html # => "<p>bar</p>"
doc.at('body').inner_html # => "<p>bar</p>"

如果要body标签的文本内容:
doc.at('body').content # => "bar"
doc.at('body').text # => "bar"

如果用“属性”来表示 attributes标记本身的 <body> :
require 'nokogiri'

html = '<html><head><title>foo</title><body on_load="do_something()"><p>bar</p></body></html>'

doc = Nokogiri::HTML(html)
doc.at('body').attributes # => {"on_load"=>#<Nokogiri::XML::Attr:0x3fdc3d923ca0 name="on_load" value="do_something()">}
doc.at('body')['on_load'] # => "do_something()"

attributes 返回哈希值,因此您可以直接访问所需的任何内容。作为一种快捷方式,Nokogiri::XML::Node也可以理解 [] ,从而为我们提供了典型的哈希值访问方式。

关于ruby-on-rails - 如何在Rails中使用Nokogiri从URL获得HTML正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21227267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com