亚洲a∨无码精品色午夜,四虎永久在线精品视频,少妇丰满大乳被男人揉捏视频,熟女少妇丰满一区二区,少妇无码av无码专区在线观看

關(guān)注一起調(diào)研網(wǎng)微信
當前位置: 首頁 » 資訊 » 調(diào)研知識 » 正文

我用Python爬取了全國4500個熱門景點,告訴你國慶哪兒最堵?

放大字體  縮小字體 發(fā)布日期:2017-09-29  來源:大數(shù)據(jù)實驗室  瀏覽次數(shù):1857
核心提示:于是我萌生了通過旅游網(wǎng)站的景點銷量來判斷近期各景點流量情況的想法(這個想法很危險啊)。所以這次的目標呢,是爬去哪兒網(wǎng)景點頁面,并得到景點的信息,大家可以先思考下大概需要幾步。因為前幾

于是我萌生了通過旅游網(wǎng)站的景點銷量來判斷近期各景點流量情況的想法(這個想法很危險啊)。

 

所以這次的目標呢,是爬去哪兒網(wǎng)景點頁面,并得到景點的信息,大家可以先思考下大概需要幾步。



因為前幾次爬蟲都是爬一些文本信息,做一下詞云之類的,我覺得:沒!意!思!了!這次正好爬的是數(shù)據(jù),我決定用數(shù)據(jù)的好基友——圖表來輸出我爬取的數(shù)據(jù),也就是說我要用爬取的景點銷量以及景點的具體位置來生成一些可視化數(shù)據(jù)。

 

安利一下百度的地圖 API 和 echarts,前者是專門提供地圖 API 的工具,聽說好多 APP 都在用它,后者是數(shù)據(jù)處理居家旅行的好伙伴,用了之后,它好,我也好(隱約覺得哪里不對)。

 

API 是什么,API 是應用程序的編程接口,就好像插頭與插座一樣,我們的程序需要電(這是什么程序?),插座中提供了電,我們只需要在程序中寫一個與插座匹配的插頭接口,就可以使用電來做我們想做的事情,而不需要知道電是如何產(chǎn)生的。



有人可能說,我已經(jīng)懂了 API 是啥意思了,可是咋個用呢。關(guān)于這一點,我很負責任的告訴你:我也不會。

 

但是!百度地圖提供了很多 API 使用示例,有 html 基礎(chǔ),大致可以看懂,有 js 基礎(chǔ)就可以嘗試改函數(shù)了(不會 js 的,我默默地復制源代碼),仔細觀察源代碼,可以知道熱力圖生成的主要數(shù)據(jù)都存放在 points 這個變量中。




這種[{x:x,x:x},{x:x,x:x}]格式的數(shù)據(jù),是一種 json 格式的數(shù)據(jù),由于具有自我描述性,所以比較通俗易懂,大概可以知道這里的三個值,前兩個是經(jīng)緯度,最后一個應該是權(quán)重(我猜的)。

 

也就是說,如果我希望將景點的熱門程度生成為熱力圖,我需要得到景點的經(jīng)緯度,以及它的權(quán)重,景點的銷量可以作為權(quán)重,并且這個數(shù)據(jù)應該是 json 格式的呈現(xiàn)方式。

 

echarts 也是一樣滴(*^__^*)。


爬取數(shù)據(jù)

 

 

這次的爬蟲部分是比較簡單的。分析網(wǎng)址(去哪兒景點)→爬取分頁中信息(景點經(jīng)緯度、銷量)→轉(zhuǎn)為 json 文件。

 

分析去哪兒景點頁的網(wǎng)址,可得出結(jié)構(gòu):http://piao.qunar.com/ticket/list.htm?keyword=搜索地點&region=&from=mpl_search_suggest&page=頁數(shù)

 

這次沒有用正則來匹配內(nèi)容,而使用了 xpath 匹配,非常好用。

 


  • 這里把每個景點的所有信息都爬下來了(其實是為了練習使用 xpath……)。

  • 使用了 while 循環(huán),for 循環(huán)的 break 的方式是發(fā)現(xiàn)無銷量時給 i 值賦零,這樣 while 循環(huán)也會同時結(jié)束。

  • 地址的匹配使用 re.sub() 函數(shù)去除了 n 多復雜信息,這點后面解釋。

 

 

輸出本地文本

 

 

為了防止代碼運行錯誤,維護代碼運行的和平,將輸出的信息列表存入到 excel 文件中了,方便日后查閱,很簡單的代碼,需要了解 pandas 的用法。








在設(shè)置獲取經(jīng)緯度的地址時,為了匹配到更準確的經(jīng)緯度,我選擇了匹配景點地址,然而,景點地址里有各種神奇的地址,帶括號解釋在 XX 對面的,說一堆你應該左拐右拐各種拐就能到的,還有英文的……


于是就有了第三章中復雜的去除信息(我終于圓回來了!)。

 

然而,就算去掉了復雜信息,還有一些匹配不到的景點地址,于是我使用了嵌套 try,如果景點地址匹配不到;就匹配景點名稱,如果景點名稱匹配不到;就匹配景點所在區(qū)域,如果依然匹配不到,那我……那我就……那我就跳過ㄒ_ㄒ……

 

身為一個景點,你怎么能,這么難找呢!不要你了!

 

這里生成的三個 json 文件,一個是給百度地圖 API 引入用的,另兩個是給 echarts 引入用的。

 

 

網(wǎng)頁讀取 json 文件

 

 

將第二章中所述的百度地圖 API 示例中的源代碼復制到解釋器中,添加密鑰,保存為 html 文件,打開就可以看到和官網(wǎng)上一樣的顯示效果。

 

echarts 需要在實例頁面,點擊頁面右上角的 EN 切換到英文版,然后點擊 download demo 下載完整源代碼。

 

根據(jù) html 導入 json 文件修改網(wǎng)頁源碼,導入 json 文件。



這里使用了 jQuery 之后,即使網(wǎng)頁調(diào)試成功了,在本地打開也無法顯示網(wǎng)頁了,在 chrome 中右鍵檢查,發(fā)現(xiàn)報錯提示是需要在服務器上顯示,可是,服務器是什么呢?

百度了一下,可以在本地創(chuàng)建一個服務器,在終端進入到 html 文件所在文件夾,輸入python -m SimpleHTTPServer,再在瀏覽器中打開 http://127.0.0.1:8000/,記得要將 html 文件名設(shè)置成 index.html 哦!

 

 

后記

 

 

因為注冊但沒有認證開發(fā)者賬號,所以每天只能獲取 6K 個經(jīng)緯度 API(這是一個很好的偷懶理由),所以我選擇了熱門景點中前 400 頁(每頁 15 個)的景點。

 

結(jié)果可想而知,(?﹏?)為了調(diào)試因為數(shù)據(jù)增多出現(xiàn)的額外 Bug,最終的獲取的景點數(shù)據(jù)大概在 4500 條左右(爬取時間為 2017 年 9 月 10 日,爬取關(guān)鍵詞:熱門景點,僅代表當時銷量)。






 


將地圖上熱門景點的銷量 Top20 提取出來,大多數(shù)都是耳熟能詳?shù)牡攸c,帝都的故宮排在了第一位,而大四川則占據(jù)了 Top5 中的三位,排在 Top20 中四川省景點就占了 6 位。

 

如果不是因為地震,我想還會有更多的火爆的景點進入排行榜的~這樣看來如果你這次國慶打算去四川的話,可以腦補到的場景就是:人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人……


熱門景點銷量Top20

 

于是我又做了一個各城市包含熱門景點數(shù)目的排行,沒想到在 4 千多個熱門景點中,數(shù)目最多的竟是我大浙江,是第二個城市的 1.5 倍,而北京作為首都也……可以說是景點數(shù)/總面積的第一位了。



主要城市熱門景點數(shù)

 

這些城市有辣么多熱門景點,都是些什么級別的景點呢?由下圖看來,各城市的各級別景點基本與城市總熱門景點呈正相關(guān),而且主要由 4A 景區(qū)貢獻而來。



主要城市熱門景點級別

 

既然去哪些地方人多,去哪里景多都已經(jīng)知道了,那再看看去哪些地方燒得錢最多吧。

 

下圖是由各城市景點銷售起步價的最大值-最小值扇形組成的圓,其中湖北以單景點銷售起步價 600 占據(jù)首位。


但也可以看到,湖北的景點銷售均價并不高(在紅色扇形中的藏藍色線條)。而如果國慶去香港玩,請做好錢包減肥的心理和生理準備(•?ω•?)?。


各省旅游景點銷售起步價

 

好啦分析完啦,ヾ(*ΦωΦ)ツ大家可要好好玩呀。

 

 

 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 關(guān)閉窗口 ]

 
0條 [查看全部]  相關(guān)評論

 
推薦視頻
推薦資訊
點擊排行
?
 
分享按鈕