1

特定の subreddit の Reddit RSS フィードを Nokogiri で解析しています。

特定のドメインに移動する場合、投稿の外部 URL をキャプチャしようとしています。

残念ながら、ユーザーが作成した投稿が外部の Web サイトにリンクしている場合でも、すべての RSS タイトルはその reddit 投稿 (コメント領域) に関係なく移動します。descriptionただし、Reddit RSS フィードによって生成された属性が 1 つあります。これには、2 つのリンクを含む HTML 文字列が含まれています。

[リンク][2 コメント]

これは常に、description.text の最後から 2 番目のアンカーです。

Nokogiri を使用すると、説明全体を文字列に取り込んでから、Nokogiri::HTMLこの文字列を使用して新しいオブジェクトをインスタンス化する部分に取り掛かることができます。

私は2つのことを疑問に思っています:

  1. Nokogiri::HTML新しいオブジェクトを作成する必要がないように文字列を変換する方法はありますか?
  2. href説明に表示される最後から 2 番目のリンクの値を保存するにはどうすればよいですか?

コード:

def scrape
  @document = Nokogiri::XML(open(self.url))
  @document.xpath("//item").each do |item|
    description_html = item.xpath('description').text
    url = Nokogiri::HTML(description_html)... #?
  end
end
4

1 に答える 1

1

理解した

def scrape
  document = Nokogiri::XML(open(self.url))
  document.xpath('//item').each do |item|
    description_html = item.xpath('description').text
    url = Nokogiri::HTML(description_html).xpath('//a')[-2]['href']
  end
end
于 2012-10-19T21:50:17.613 に答える