我已经缩小了我想要使用Nokogiri从网页中提取的网址。
不幸的是,当我尝试从这个对象获取属性时,我无法做到。它就在那里,我甚至可以看到它,但我不知道如何检索URL。
请看一下这个Nokogiri对象。我已尝试使用url = titleArea.attr("href")
以及url = titleArea.attribute("href")
。
我感兴趣的是:
[#<Nokogiri::XML::Attr:0x3fdc727d8d98 name="href"
> value="watek-nowy-pomysl_1515">]
从这个对象:
> #<Nokogiri::XML::Element:0x3fdc72796f9c name="span" attributes=[#<Nokogiri::XML::Attr:0x3fdc727d9bd0 name="class" value="
> subject_new">, #<Nokogiri::XML::Attr:0x3fdc727d9bbc name="id"
> value="tid_1515">] children=[#<Nokogiri::XML::Element:0x3fdc727d8f64
> name="a" attributes=[#<Nokogiri::XML::Attr:0x3fdc727d8d98 name="href"
> value="watek-nowy-pomysl_1515">]
> children=[#<Nokogiri::XML::Text:0x3fdc727d808c "nowy pomys�">]>]>
.to_s
表示很漂亮但是我无法从字符串中提取href,我需要使用Nokogiri的功能:
"<span class=\" subject_new\" id=\"tid_1515\">\n <a href=\"watek-nowy-pomysl_1515\">nowy pomys�</a>\n</span>"
答案 0 :(得分:0)
您的对象是span
元素,其中包含a
元素。在访问属性之前,您必须先选择a
元素。
str = "<span class=\" subject_new\" id=\"tid_1515\">\n <a href=\"watek-nowy-pomysl_1515\">nowy pomys�</a>\n</span>"
title_area = Nokogiri::XML(str)
title_area.at('a')['href'] # => "watek-nowy-pomysl_1515"