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

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

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

能否写一个简单的demo, thanks

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

共收到 8 条回复

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 看我之前写的代码啊,你不是有么

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