單身狗用python寫了個國慶景點推薦,妹子再也不擔心去哪了……
作者:AS 數據圈成員 python學習組
學生 來自長春
經濟統計專業
愛數據愛編程
國慶
再過幾天就是國慶了,還在糾結去哪玩嗎?
還在找不到景點嗎?沒事,這款itchat自動回復小程序統統替你解決,只需輸入城市,省份甚至國家,大洲的拼音,就能獲取目的地的相關介紹,並自動推薦當地特色景點甚至美食。是不是很有趣啊,趕快和小夥伴們一起來玩吧!
一、Itchat的安裝
這裡用Anaconda自帶的conda工具。打開電腦終端/cmd,輸入以下命令。輸入cd進入我們想要安裝的地方(這裡我把itchat安裝在E盤),輸入以下命令:
pip install itchat
二、前期準備
三、實驗步驟
當一切都準備就緒之後,我們就來敲代碼吧!哈哈,是不是看到「代碼」兩字就頭疼,沒事。
我們先來理一下思路:
抓取該地點的相關信息,並返回給微信。所以我們將代碼劃分為A,B兩部分。
1
Help
(注意:由於山西與陝西,福州與撫州同音,吉林又分為吉林省和吉林市,所以在打開網頁https://lvyou.baidu.com搜索以下幾個城市發現,網站將陝西的拼音定義為shaanxi,吉林市為jilinshi,撫州為jiangxifuzhou,為了方便使用,我們在提示信息里做一下備註)
2&3
pinyin+result
當我們輸入一個拼音時,我們期待得到的市一個天氣結果,所以這實質上是一個pinyin轉化為result的過程。
首先註冊消息響應事件,然後創建函數getcity(),變數為msg,用來存放pinyin,並通過pinyin獲取景點信息result,最後將景點信息發送給好友
b Python——Web
這部分主要是python通過變數pinyin從網頁上抓取相關信息。
確定抓取內容
1
打開網頁https://lvyou.baidu.com任意搜索幾個景點,不難發現景點的網址都是由
https://lvyou.baidu.com+地點的拼音
構成的
2
3
右擊->審查元素,或者ctrl+shift+I,或者F12打開Chrome Inspector,獲取網站頁面源代碼。然後使用正則表達式和find(),find_all( )函數通過定位標籤來查找信息。如下圖所示,以廈門為例:
代碼實現
1
2
抓取推薦信息:
這裡我們想要獲取推薦所有推薦內容,觀察頁面源代碼易得,它們都存放在class為『unmis-li』的標籤裡面。於是先使用find_all()函數抓取所有推薦,然後再使用if循環語句抓取推薦裡面的景點(或美食)名稱,並存放在一個列表裡面。
寫完之後,先嘗試著填入地點拼音,運行一下。很快地,問題又出現了。當我們輸入的拼音為國家或者省份時候,arr列表居然是空的!先返回旅遊網頁找找線索
原來,省份(國家)與城市推薦信息的定位標籤不一樣。如下圖所示:
為了保險起見,我們再多搜索幾次,發現有些比較偏僻,冷門的地方是沒有「最佳季節」,「建議遊玩」,景點(美食)等方面的推薦的。這方面我們使用try……except……語句來處理
抓取到我們想要的內容之後,接下來就是定義一個輸出變數output來列印抓取結果。output分為output1和output2兩部分,直接將景點基本信息存放在output1里,output2用來存放景點(美食)推薦。使用for循環語句將列表裡的內容列印出來。
四、總結
五、運行
六、效果展示
有興趣的小夥伴趕緊來試一下吧
心動不如行動
如何加入數據圈
第一期學習已滿,現在二三期正在招募,課程體系任你選,全部免費,終身學習,點擊了解那些人都在愛數圈(第一期)
加入數據君高效數據分析社區,2種加人方式:
1:掃碼加入
2、加入方式:
轉賬298,先拉微信群,再邀請進小密圈
猶豫的、不懂的、諮詢的不要加,加了也是殭屍,時間寶貴,你我都珍惜
TAG:數據挖掘與大數據分析 |