`
zfj.rails
  • 浏览: 47337 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

爬虫源码公开之一 -- wenwen.rake

阅读更多
wenwen.rake

# == Synopsis
#
# wenwen rake all in one.
#
# == Author
# fujun
# 2011.05.08
#
# == Copyright
# Copyright (c) 2010 id86 Inc.
# All rights reserved.
#
# Usage: rake wenwen:***

WENWEN_PATH = File.join(Rails.root.to_s, 'lib', 'spider', 'wenwen')

namespace :wenwen do

  desc "list spider."
  task :list_spider => [:environment] do
    require File.join(WENWEN_PATH, 'list_spider')
    Wenwen::ListSpider.new().run
  end

  desc "detail spider."
  task :detail_spider => [:environment] do
    require File.join(WENWEN_PATH, 'detail_spider')
    Wenwen::DetailSpider.new().run
  end

end
分享到:
评论
2 楼 zfj.rails 2011-06-01  
再来解读一下soso的search与筛选功能:
以 http://wenwen.soso.com/z/Search.e?sp=Sruby 为例

http://wenwen.soso.com/z/Search.e?  这一堆是search功能的入口
sp=Sruby    sp参数是你要搜索的关键字,但前面加了一个“s”,这个倒是没有想明白,他为什么要这么整。手动指定你要搜索的关键字,还请URI.encode(key_word)一下,不然。。。

st参数: st=1 待解决; st=6 高悬赏; st=7 零回答
sti参数:sti=4 一天内; sti=2 一周内; sti=1 一月内

这次写爬虫,因为是第一次全爬,所以就没有只用到了st参数,sti没有用到。感觉他上面的问题也不是很多。

后面增量爬取的话,就需要指定sti了,可以每天一爬,指定sti为一天内的新问答
1 楼 zfj.rails 2011-06-01  
【Wenwen::ListSpider】的作用是通过一系列的关键字,找到

http://wenwen.soso.com上与你给出的关键字相匹配的文章列表。

soso每一页,默认返回10条结果,目前还没有找到手动指定每页返回结果条数的参数,咱们就一页一页的翻吧。

有的网站是可以通过参数指定每页返回结果的条数。

曾经遇到过一个网站,他能指定条数,并且没有限制,哈哈。导致一个请求数以万计的结果就全列出来了,太给力了。

soso这个搜索结果页,

比如:http://wenwen.soso.com/z/Search.e?sp=Sruby&w=ruby
这是搜索与关键字“ruby”相关的结果,第一条是soso百科的,无视掉。

soso的搜索结果页,里面有这么一个机制,如果你搜索的关键字有soso百科,他就会把soso百科列在第一条,也就是第一页会有11条结果。

【Wenwen::DetailSpider】的作用是用采回来的有效文章id去取相应的内容,取出相应的问题和答案,取出时间,然后结果自己写的discuz增加用户工具,将问题和答案、时间与随机的用户相关联起来。

相关推荐

Global site tag (gtag.js) - Google Analytics