簡體   English   中英

Nokogiri Ruby HTML解析器

[英]Nokogiri Ruby HTML Parser

我在用Nokogiri跨多個頁面抓取時遇到了問題。 我需要能夠首先根據合格的href縮小搜索范圍。 因此,這里是一個腳本,用於獲取我感興趣的所有href。 但是,我在解析文章標題時遇到了麻煩,因此無法鏈接到它們。 非常高興知道我可以手動檢查這些元素,以便獲得所需的鏈接,並且每當找到鏈接時,我都可以像中那樣獲取描述文章/參考的標題/文本。

<a href.......>Text Linked to</a>

這樣我便有了{:source =>“ .....”,:url =>“ .....”,:title =>“ .....”}的哈希。 這是我到目前為止的腳本。 它縮小了我對在哈希中進行設置感興趣的鏈接的范圍。

require 'nokogiri'
require 'open-uri'

page = "http://www.huffingtonpost.com/politics/"

doc = Nokogiri::HTML(open(page))
links = doc.css('a')
hrefs = links.map {|link| link.attribute('href').to_s}.uniq.sort.delete_if{|href| href.empty?}

hrefs.each do |h|
    if h.reverse[0,9] != "stnemmoc#"
        if (h.reverse[0,7] == "scitilo") & (h.length > 65)
            puts h
        end
    end
end

如果有人可以提供幫助,也許可以解釋一下如何找到我想要的href,然后基於首先過濾掉href中的url來解析文本,那真是太好了。 還建議將這些Nokogiri腳本放入Controller中,然后在Rails中以這種方式發送到數據庫中嗎? 我很感激。

謝謝

我不確定我是否完全理解您的問題,但是我將其解釋為“如何提取鏈接並訪問其屬性?”

只需修改您的選擇器:

links = doc.css('a[href]')

這會給你所有的a有一個元素href 然后,您可以遍歷這些屬性並訪問它們的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM