這是我的練習筆記,記錄Ruby的練習
目的:抓取網站大量圖片
使用:Ruby的std-lib 1.open-uri 2.Nokogiri 還有wget commandline download tool
目標網站:迪士尼角色列表
動手前你需要:
- 安裝Ruby
步驟講解:
- 開啟terminal command line tool,進入 irb
- 載入lib open-uri , nokogiri
- 用open-uri,將網站html開啟並存成string
- Nokogiri,分析該網站的string檔,並搜尋需要的東西在這邊是各別角色的網址,並存成array
- 重複step3~4 ,取得角色網址裡的圖片網址,存成array2
- wget 去抓取array2的圖片網址
a=open('http://www.disneybox.com/wiki/Category%3A%E8%A7%92%E8%89%B2').read
b=doc = Nokogiri::HTML(a)
t=doc.search('table')
t2=t.search('a')
ar=[]
t2.each {|i| ar << i.attr('href') } #拿到列表
ar2=[]
ar.each do |o|
ar2 << d+o
end
ar2 #完整網址
ar2.each do |o|
Nokogiri::HTML(open(o).read)
end
ha=Nokogiri::HTML(open(ar3[0]).read)
ha.search('img') #會有兩個src ,直接attr 只會找到第一個
ha.search('img').last.attr('src') #got it
改成each do 格式 約跑3分鐘
irb(main):218:0* ar3.each do |o|
irb(main):219:1* x=Nokogiri::HTML(open(o).read)
irb(main):220:1> ans<<d+x.search('img').last.attr('src')
irb(main):221:1> end
非常有用
回覆刪除https://www.kennynelvis.com.hk/blog/
謝謝關注