close

延續上一次的爬蟲練習

包含上次的總共爬四個網站

Pchome24h

momo購物網

yahoo超級商城

蝦皮拍賣

 

要執行的爬蟲工作:

1.使用者輸入要搜尋的商品名稱

2.放入拍賣網搜尋

3.爬蟲出:第一項商品名稱、價錢、商品網址

4.若無搜尋結果則例外處理

5.模糊匹配

一些需要用到的模組:

112.JPG

 

 

 

 

一、整理搜尋網址

首先要先把搜尋網址整理出來

也就是輸入"商品名稱"後

配上網址可以直接達到在購物網站搜尋的結果

110.JPG

 

這邊做的動作有

先把各拍賣網的網址記錄下來

將商品名稱帶入進去再存到新的變數中

最後輸出給使用者看網址、並呼叫該購物網站的爬蟲函數

 

 

二、各購物網站爬蟲程式

一個使用json分析,其餘三個大同小異

 

1.momo購物網 爬蟲程式

111.JPG

這裡使用的方法是用PhantomJS瀏覽器開啟該網址(該瀏覽器可無視窗的方式執行)

抓到包含所有動態原始碼之後,再經由BeautifulSoup4分析

找出含有商品名稱、商品價格、商品網址的各個標籤

將他們分別存入串列之中後,提取出第一項資料(第一件商品)並顯示出來

最後做一個例外處理

若該商品沒有任何資料,則顯示:"噢哦,查無相關資料"

 

 

2.PChome24h 爬蟲程式

113.JPG

這裡使用的方法是直接分析該網頁的讀取方式,找到該網站儲存json商品資料的位置

最後讀取json內容並且分析

找出含有商品名稱、商品價格、商品網址的各個標籤

將他們分別存入串列之中後,提取出第一項資料(第一件商品)並顯示出來

最後做一個例外處理

若該商品沒有任何資料,則顯示:"噢哦,查無相關資料"

 

3.Yahoo超級商城 爬蟲程式

114.JPG

這裡使用chrome瀏覽器讀取程式碼,而不使用PhantomJS的是因為

PhantomJS無法正常讀取該網站的編碼,會導致搜尋的商品名稱錯誤

而接下來與之前momo購物網相同,使用BeautifulSoup4分析網頁

找出含有商品名稱、商品價格、商品網址的各個標籤

將他們分別存入串列之中後,提取出第一項資料(第一件商品)並顯示出來

最後做一個例外處理

若該商品沒有任何資料,則顯示:"噢哦,查無相關資料"

最後要記得將chrome瀏覽器關閉

 

4.蝦皮拍賣 爬蟲程式

115.JPG

與上一個相同使用chrome+beautifulsoup4爬蟲

使用chrome瀏覽器讀取程式碼,而這裡不使用PhantomJS的是因為

PhantomJS無法正常讀取該網站的編碼,會導致搜尋的商品名稱錯誤

再來使用BeautifulSoup4分析網頁

找出含有商品名稱、商品價格、商品網址的各個標籤

將他們分別存入串列之中後,提取出第一項資料(第一件商品)並顯示出來

最後做一個例外處理

若該商品沒有任何資料,則顯示:"噢哦,查無相關資料"

最後要記得將chrome瀏覽器關閉

 

 

 

 

三、模糊匹配

這裡做的模糊匹配並不完全精確

做了簡略的對應

大於0.5的則為相關資料

小於0.5的則為類似資料

其實可以只做成一個程式使用

我把它分成四個是為了要獲取各拍賣網的 "相關"、"類似" 資料的變數

 

日後存進資料庫的時候才能比較清楚的辨別資料內容

116.JPG

另外三個模糊匹配只是變數更改,其餘內容皆相同,就不重複貼上了。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ivankao 的頭像
    ivankao

    IvanKao的部落格

    ivankao 發表在 痞客邦 留言(3) 人氣()