今年部落格最受歡迎文章:[Python] 現學現賣之網路爬蟲(Crawler)--以抓本BLOG為例是我剛學python時寫的程式,內容其實也都是照著老師的課程講義來做,很多細節也是矇懞懂懂.至今過了半年,爬網的經驗也多了一點,比較有內容可以跟大家分享.爬網有很多種用途,對比起搜尋引擎的全頁抓取,更多時候是抓取特定網站的特定內容,這時候除了爬蟲程式本身之外,對於網站欄位的解析更為重要.


 

 

  • 網頁解析工具
    現在各大瀏覽器都有網站解析工具可以看到網站的原始碼,只要打開想要的網站,開啟網站解析工具就可以,以下例子使用的是Safari內建的Web Inspectr.以愛評網網為例:先連到首頁,搜尋想要找的餐廳:
 
  • 打開Web Inspector:
 
  • 下方會出現Web Inspector:
  • 依節點點開網站架構:
 
  • 點選TimeLine可以看到網頁讀取每個元件的時間:
  • 點進去可以看到網站連結的真實網址(我們之後會用到):
  • 接著就要思考我們究竟要抓什麼東西?這邊我是想搜集每個商店的名稱,電話和地址.但是網頁原始碼落落長,要怎樣找到所要的節點資訊?可以透過Inspect小工具:


 

  • 點下去之後,將指標移到想觀察的元件上,就會出現對應的位置,從原始碼中可以很清楚看到店名alochas野草,很明顯地出現在的a tag(<a>......</a>)之間,這表示程式可以很輕易地抓到這個內容:


 

  •  接著觀察電話,會發現電話沒有直接顯示在原始碼中,原始碼出現的是一個img檔案(這是因為網站想反爬網做的處理,一般爬網程式無法抓取不是顯示在原始碼內的東西):
 
  • 這時候該怎麼辦呢?把圖片抓下來用ORC?當然也是一種做法,但是這樣太麻煩了,所以我決定繞一下,看有沒有地方顯示資料:
  • 點進野草的連結,發現這邊也有顯示電話:
  • 再啟動Inspect看一下內容,非常開心這邊的電話號碼是有標示在原始碼中的!:
  • 這時候一切謎底都解開了,接著我們可以就這樣的結構設計爬蟲來爬特定欄位了(待續...希望不要因為這篇文章讓網站改版orz)!

資料來源:Bryan的行銷研究及資料分析筆記


留下你的回應

以訪客張貼回應

0

在此對話中的人們

Popular Tags

每月文章