延續上一次的爬蟲練習
包含上次的總共爬四個網站
Pchome24h
momo購物網
yahoo超級商城
蝦皮拍賣
要執行的爬蟲工作:
1.使用者輸入要搜尋的商品名稱
2.放入拍賣網搜尋
3.爬蟲出:第一項商品名稱、價錢、商品網址
4.若無搜尋結果則例外處理
5.模糊匹配
一些需要用到的模組:
一、整理搜尋網址
首先要先把搜尋網址整理出來
也就是輸入"商品名稱"後
配上網址可以直接達到在購物網站搜尋的結果
這邊做的動作有
先把各拍賣網的網址記錄下來
將商品名稱帶入進去再存到新的變數中
最後輸出給使用者看網址、並呼叫該購物網站的爬蟲函數
二、各購物網站爬蟲程式
一個使用json分析,其餘三個大同小異
1.momo購物網 爬蟲程式
這裡使用的方法是用PhantomJS瀏覽器開啟該網址(該瀏覽器可無視窗的方式執行)
抓到包含所有動態原始碼之後,再經由BeautifulSoup4分析
找出含有商品名稱、商品價格、商品網址的各個標籤
將他們分別存入串列之中後,提取出第一項資料(第一件商品)並顯示出來
最後做一個例外處理
若該商品沒有任何資料,則顯示:"噢哦,查無相關資料"
2.PChome24h 爬蟲程式
這裡使用的方法是直接分析該網頁的讀取方式,找到該網站儲存json商品資料的位置
最後讀取json內容並且分析
找出含有商品名稱、商品價格、商品網址的各個標籤
將他們分別存入串列之中後,提取出第一項資料(第一件商品)並顯示出來
最後做一個例外處理
若該商品沒有任何資料,則顯示:"噢哦,查無相關資料"
3.Yahoo超級商城 爬蟲程式
這裡使用chrome瀏覽器讀取程式碼,而不使用PhantomJS的是因為
PhantomJS無法正常讀取該網站的編碼,會導致搜尋的商品名稱錯誤
而接下來與之前momo購物網相同,使用BeautifulSoup4分析網頁
找出含有商品名稱、商品價格、商品網址的各個標籤
將他們分別存入串列之中後,提取出第一項資料(第一件商品)並顯示出來
最後做一個例外處理
若該商品沒有任何資料,則顯示:"噢哦,查無相關資料"
最後要記得將chrome瀏覽器關閉
4.蝦皮拍賣 爬蟲程式
與上一個相同使用chrome+beautifulsoup4爬蟲
使用chrome瀏覽器讀取程式碼,而這裡不使用PhantomJS的是因為
PhantomJS無法正常讀取該網站的編碼,會導致搜尋的商品名稱錯誤
再來使用BeautifulSoup4分析網頁
找出含有商品名稱、商品價格、商品網址的各個標籤
將他們分別存入串列之中後,提取出第一項資料(第一件商品)並顯示出來
最後做一個例外處理
若該商品沒有任何資料,則顯示:"噢哦,查無相關資料"
最後要記得將chrome瀏覽器關閉
三、模糊匹配
這裡做的模糊匹配並不完全精確
做了簡略的對應
大於0.5的則為相關資料
小於0.5的則為類似資料
其實可以只做成一個程式使用
我把它分成四個是為了要獲取各拍賣網的 "相關"、"類似" 資料的變數
日後存進資料庫的時候才能比較清楚的辨別資料內容
另外三個模糊匹配只是變數更改,其餘內容皆相同,就不重複貼上了。
留言列表