Gem 新手求帮助 Nokogiri 如何实现采集图片啊?

xufeng · 2012年02月12日 · 最后由 huacnlee 回复于 2012年02月13日 · 3818 次阅读

采集文本信息容易解决,如何实现采集图片呢?

能否写一个简单的 demo, thanks

本人已经 google baidu 了,没有找到教程。

Nokogiri 是用来解析的

最简单的采集方式,调用 wget system('wget http://www.gravatar.com/avatar/9d667e0bdb24f9323111682a6ae8cea1.png -O /tmp/avtar.png')

要不就用 ruby 自带的 net http get http://www.kuqin.com/rubycndocument/man/addlib/net/http.html

open-uri 方便点

#1 楼 @cxh116 谢谢了。如果有大量图片需要采集,请问最好的方法是什么啊?

效率最高的方法是什么啊?

#2 楼 @Rei 谢谢了,请问具体的代码是什么?小弟比较笨

require "open-uri"
data=open("http://www.ppc110.com/logo.gif"){|f|f.read}
open("logo.gif","wb"){|f|f.write(data)}


require "open-uri"
for i in 1..10

uri="http://www.ppc110.com/logo" +i.to_s +".gif"
data=open(uri){|f|f.read}
open("logo" + i.to_s + ".gif","wb"){|f|f.write(data)}

end

用 nokogiri 来分析 url 之后用 ruby 的 open-uri 来写入本地文件 可以配合 Firefox 下 SelectorGadget 插件来做 CSS 选择器 具体这里http://railscasts.com/episodes/190-screen-scraping-with-nokogiri 不过我想应该大家都看过了才对

#3 楼 @xufeng 这个还真不知道 我采集淘宝的时候用的是 wget

可以尝试用多线程,一个线程一个 wget 以前采集淘宝是可以这样的,不过现在单个线程,采集都被封 IP,让人很郁闷

#5 楼 @xufeng 看我之前写的代码啊,你不是有么

需要 登录 后方可回复, 如果你还没有账号请 注册新账号