99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時代分析數(shù)萬旅游評論,告訴你國慶景點(diǎn)背后的秘密!
分析數(shù)萬旅游評論,告訴你國慶景點(diǎn)背后的秘密!
2020-10-10
收藏

作者:劉早起

來源:早起Python

大家好,這個國慶,你出去旅游了嗎?每次假期后網(wǎng)友總愛去微博、知乎吐槽國慶旅游的坑爹景點(diǎn),相關(guān)話題也頻上熱榜,在國慶期間也有相關(guān)文章[1]通過整理對應(yīng)話題統(tǒng)計(jì)出最坑爹城市前五名分別為杭州、西安、廈門、北京、南京,而最坑爹景點(diǎn)則有西湖、兵馬俑、鼓浪嶼、故宮、夫子廟、黃鶴樓[2]。

本文通過Python爬取旅游網(wǎng)站評論數(shù)據(jù),分析這些城市和景點(diǎn)在國慶期間到底表現(xiàn)如何,是否真的像網(wǎng)友吐槽的那樣坑爹。

01、數(shù)據(jù)來源與說明

本文使用的數(shù)據(jù)均來源于攜程旅行官網(wǎng)對應(yīng)景點(diǎn)評論,采集時間段為2020-09-30至2020-10-08。因其所有數(shù)據(jù)均來自于具體訂單完成后評價,使用該的數(shù)據(jù)相比社交平臺討論數(shù)據(jù)而言將更加真實(shí)。下面將以故宮為例簡單說明如何使用Python爬取數(shù)據(jù),首先打開對應(yīng)頁面

https://you.ctrip.com/sight/beijing1/229.html

如上圖所示,按下F12之后在評論區(qū)域點(diǎn)擊最新即可找到存儲打分、評價等數(shù)據(jù)的包,之后只需查看headers等相關(guān)信息,使用Requests構(gòu)造請求即可取下數(shù)據(jù),要注意的是該請求為post形式,所以需要傳入對應(yīng)參數(shù)才可以,此處不做過多講解。

但由于我們只需要國慶期間的數(shù)據(jù),最多的景點(diǎn)也不過100多頁評論,所以另外一種方法是使用Selenium模擬瀏覽器操作也可以輕松成功拿下數(shù)據(jù),之后使用pandas清洗即可。

最終本文選取的字段為:

  • 時間
  • 總評分
  • 景色評分
  • 趣味性評分
  • 性價比評分
  • 評價內(nèi)容

02、不同城市旅游熱度分析

本節(jié)我們將國慶期間各省份排名前三的景點(diǎn)評論數(shù)量進(jìn)行匯總,整理后數(shù)據(jù)的視為該省份的旅游熱度,計(jì)算得到不同省份旅游熱度,最熱門的城市為北京,其次是江浙滬以及湖北、四川、廣東、福建等省份。而這個熱度排名也基本與前文提到的社交平臺吐槽排名符合。

現(xiàn)在我們對網(wǎng)友評出最坑爹城市前五名的杭州、西安、廈門、北京、南京的旅游景點(diǎn)熱度單獨(dú)分析。

從評論數(shù)量來看,熱度排行前列的景點(diǎn)基本在北京和西安,最受歡迎的景點(diǎn)為西安的兵馬俑,而備受吐槽的西湖、鼓浪嶼、夫子廟等地在網(wǎng)站并沒有太多的評論,可能與這些景點(diǎn)無需門票而無法產(chǎn)生訂單有關(guān)。

03、“坑爹”景點(diǎn)分析

——好評度分析

本節(jié)我們進(jìn)一步對上述五個城市的景點(diǎn)進(jìn)一步分析其坑爹程度,我們對不同景點(diǎn)的網(wǎng)友好評度進(jìn)行分析。

根據(jù)該網(wǎng)站數(shù)據(jù),兵馬俑和故宮分別斬獲近9成網(wǎng)友的好評,而西湖和鼓浪嶼的好評度僅在80%左右,黃鶴樓也有近85%的網(wǎng)友給出好評,當(dāng)然這里的好評僅為網(wǎng)友給出的總分,可以視為整體評價,接下來將對具體的評論內(nèi)容進(jìn)行分析。

——評論情感分析 

現(xiàn)在我們將每一個評論的具體內(nèi)容進(jìn)行情感分析。

可以看到,雖然上一節(jié)的好評度分析中,每個景點(diǎn)都有超過8成的網(wǎng)友給出好評,但是從評價內(nèi)容來看,給出正向的評價網(wǎng)友除了故宮之外,均不足8成,而整體評價較好的兵馬俑,卻有24.79%的網(wǎng)友給出負(fù)向評價。

——其他指標(biāo)分析

在我們采集到的數(shù)據(jù)字段中除了總得分(好評)之外,還有景色、趣味、性價比三個指標(biāo),現(xiàn)在看一下不同總分的各項(xiàng)指標(biāo)得分對比

不難看出在高分評價中,性價比指標(biāo)的得分高于趣味性,而低分評價中則恰好相反,說明性價比不足更容易更容易讓網(wǎng)友反感。研究該部分評論發(fā)現(xiàn)大多是在吐槽景區(qū)的(額外)消費(fèi)高。 

04、“坑爹”景點(diǎn)說什么

最后讓我們來看看上述五個景點(diǎn)的詞云分析,看看網(wǎng)友到底在吐槽什么。

北京—故宮

今天恰逢紫禁城600周年,故宮也有很多的特別展出,大多數(shù)網(wǎng)友都在贊嘆故宮的宏偉磅礴,而由于疫情原因,故宮限流,也有小部分人在吐槽門票難搶。

廈門—鼓浪嶼

下面是鼓浪嶼的評論詞云,除了景色不錯之外,體驗(yàn)一般也很突出,其次就是上面說過的性價比不足,景點(diǎn)消費(fèi)貴。

杭州—西湖

西湖詞云同樣是景色不錯,但是不夠好玩,性價比不足,其次就是排隊(duì)時間太久

其實(shí)西湖景區(qū)并不大,國慶期間難免會人人人人人

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }