作爲資深宅男的我,自然對外面喫、玩的地方瞭解甚少 -_-! 。那麼怎麼才能選到好喫的地方呢,這個問題很嚴峻。既然學了計算機專業這麼兩年,我想,也許它能幫到我吧,於是乎…
下載八爪魚
首先,我下載了一個上手快,門檻兒低的爬蟲軟件—八爪魚。很簡單,我用它來抓取達州附近所有的美食商鋪,最後進行一個篩選,找個性價比高點兒的店鋪,就達到我的目的了,O(∩_∩)O~~。
開啓採集
打開八爪魚採集器,選擇高級模式–>開始採集:
在下一個頁面寫上任務名,分個組,打上備註,點擊右上角下一步。我們從百度地圖中來採集我們需要的店鋪(百度地 圖: http://map.baidu.com/),然後你可以通過看視頻或者教程的方式,設置如下工作流程:(我搜索的是達州美食)
OK之後,一直點下一步,最後,點擊啓動單機採集就好。之後,就是漫長地採集數據的過程了,百度地圖上存在的相關商鋪,都會被採集出來,你會看到這樣一幅畫面:
保存數據
我已經採集到不重複的500來個商鋪了,但我還是不打算放手,再搜點兒,主要是享受偷數據的快感,對吧,O(∩_∩)O哈哈~
然後,我們把得到的數據進行保存,選擇右下角“導出到數據庫” ,我選擇mysql數據庫,當然,前提,你在mysql數據庫已建庫與表以及相應字段,然後,選擇映射時,將抓取字段名與數據表字段進行匹配映射就可以了,導入後,就是這樣了(__) ~~ :
然後,我們就可以瘋狂地進行SQL查詢,找到符合我們要求的美食店鋪咯。當然我已經找到了,嘿嘿,SQL語句可以是:
SELECT * FROM SHOP WHERE SHOP_PRICE!=’’ ORDER BY SHOP_LEVEL DESC,SHOP_PRICE ASC
價格低,評分高的店鋪的確還是有的,滿意、開心!O(∩_∩)O~
上面着重講到了數據的抓取,而對於數據的篩選,貌似僅僅用到了一條sql語句,這樣未免有些太low,而且不容易找到自己最想要的價格區間和評分區間。所以,我的打算是使用遺傳算法:即基於已獲的大量數據,以價格和評分通過公式“1-|EP1-A|-|EP2-B| ”轉換爲算法適應度,再經過交叉運算與變異運算之後,得到最佳個體,即我想要的最終店鋪。
最後
- 附上面八爪魚安裝包下載地址:http://pan.baidu.com/s/1o7Frots (含以上採集工作流程圖的任務,直接導入任務使用就可以了,當然你也可以在官網去下載)
- 遺傳算法相關說明:模擬達爾文生物進化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法。我也寫了一篇關於遺傳算法的博客(被用於英語四級考試的自動組卷),詳見:http://blog.csdn.net/localhost01/article/details/52141554