论坛首页 编程语言技术论坛

InfoQ的自动新闻订阅

浏览 3442 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-06-21  
发现InfoQ的RSS很不厚道,只现实一个该要。想要知道详细内容的话不得不点进去看。如果用手机的话流量剧增。那么我就写了一个很简单的ruby代码,比如把InfoQ的和ruby相关的新闻提出来。每天晚上发到我的邮箱,那么我就不用理会网页上的那么多广告了。

发邮件部分就不贴了,就给一个大概的思路吧。主要是学习hpricot。在RSS方面javaeye做的很好。

require "rubygems"

require 'hpricot'
require 'open-uri'

HOST_NAME="http://www.infoq.com"

doc = Hpricot(open("http://www.infoq.com/cn/ruby"))
p = doc.search("//h1/a")

result = []
p.each do |pitem|
  href = pitem.get_attribute("href")
  title = pitem.search("//text()")
  result << [title, href] if href =~ /\/cn\//
end

result.each do |items|
  doc = Hpricot(open(HOST_NAME + items[1]))
#  puts items[0]
  doc.search("//div[@class='box-content-5']//p[@class='h1-r']").remove
  doc.search("//div[@class='box-content-5']//p[@class='info']").remove
  doc.search("//div[@class='box-content-5']//dl").remove
  doc.search("//div[@class='box-content-5']//div[@class='vendor-content-box-float']").remove
  doc.search("//div[@class='box-content-5']//div[@class='vendor-content-box']").remove  
  doc.search("//div[@class='box-content-5']//div[@class='comments-header']").remove
  doc.search("//div[@class='box-content-5']//div[@class='forum-list-tree']").remove
  doc.search("//div[@class='box-content-5']//div[@class='comments-sort']").remove
  doc.search("//div[@class='box-content-5']//ol").remove
  doc.search("//div[@class='box-content-5']//script").remove
  doc.search("//div[@class='box-content-5']//br").remove
  doc.search("//div[@class='box-content-5']//text()") do |item|
    puts item
  end
  puts "_______________________________________________________________________\n\n"
end


   发表时间:2008-06-21  
RSS输出全文的在国内还是少数,InfoQ这样做也无可厚非,特别是作为一个新闻站点,如果输出全文的话,流量就会少很多。
不过JavaEye一直坚持输出全文RSS,要赞一个。
0 请登录后投票
   发表时间:2008-06-24  
我就喜欢javaeye这一点!虽然全文输出了,但是遇到我比较关注的论坛贴,一定会点进来的!
0 请登录后投票
   发表时间:2008-06-30  
还是喜欢全文输出,我从RSS reader点进来主要是为了看回复, 不是有句“回复更精彩”吗?
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics