熱門文章

2016年11月5日 星期六

[Ruby]爬蟲筆記-Open-uri Nokogiri wget抓取網站圖片



這是我的練習筆記,記錄Ruby的練習

目的:抓取網站大量圖片
使用:Ruby的std-lib  1.open-uri  2.Nokogiri  還有wget commandline download tool
目標網站:迪士尼角色列表






動手前你需要:

  1. 安裝Ruby

步驟講解:

  1. 開啟terminal command line tool,進入 irb
  2. 載入lib open-uri , nokogiri
  3. 用open-uri,將網站html開啟並存成string
  4. Nokogiri,分析該網站的string檔,並搜尋需要的東西在這邊是各別角色的網址,並存成array
  5. 重複step3~4 ,取得角色網址裡的圖片網址,存成array2
  6. 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



1 則留言:

  1. 非常有用
    https://www.kennynelvis.com.hk/blog/
    謝謝關注

    回覆刪除