舉國歡慶的國慶節(jié)馬上就要結(jié)束了偏化,你想好去哪里看人山人海了嗎?還是窩在家里充電學(xué)習(xí)呢镐侯?說起國慶侦讨,塞車與爆滿這兩個詞必不可少,但是如果能提前知道哪些景點(diǎn)爆滿就不用人擠人地去湊熱鬧了苟翻。本文即用 Python 抓取了有關(guān)國慶出行方面的數(shù)據(jù)韵卤,希望給你的假期提供些幫助。
一開始崇猫,筆者以為要抓取出行方面的數(shù)據(jù)挺簡單沈条,直接去看看攜程旅游、馬蜂窩這類網(wǎng)站看看有沒有數(shù)據(jù)抓取就好诅炉。但是實(shí)際上這些網(wǎng)站并沒有比較好的格式化數(shù)據(jù)供我們抓壤酢(當(dāng)然或許是我沒找到辦法......)。但是出行肯定會查找相關(guān)的出行攻略涕烧,那么關(guān)鍵詞就是一個突破口月而,可以查詢百度指數(shù)來看看哪些景點(diǎn)被查詢的次數(shù)最多,那么就可以大概知道哪些景點(diǎn)會爆滿了议纯。
01:統(tǒng)計(jì)結(jié)果
此次的統(tǒng)計(jì)結(jié)果只是從側(cè)面反映景點(diǎn)爆滿的問題父款,未必是完全準(zhǔn)確的,僅供參考痹扇。此次統(tǒng)計(jì)的景點(diǎn)共有 100 個:
不出意外铛漓,桂林、三亞鲫构、泰山的搜索量都是杠杠的浓恶,這第一梯隊(duì)的地方能不去就別去了,去了也是人山人海的结笨,爆滿是無疑的了包晰。
第二梯隊(duì)的搜索量也不差湿镀,日均搜索量還是上萬的,謹(jǐn)慎行動伐憾。
第三梯隊(duì)下來就可以考慮考慮勉痴,為了避免不必要的塞車與等待,建議大家還是待在家里吧......
第四梯隊(duì)?wèi)?yīng)該沒太大的問題树肃,建議出去溜達(dá)溜達(dá)蒸矛。
都到第五梯隊(duì)了,就可以放心地玩耍了胸嘴。經(jīng)歷了那么多的煩心事雏掠,是該好好放飛一下自己了。
02:爬蟲技術(shù)分析及具體實(shí)現(xiàn)
本次爬取過程中用的的數(shù)據(jù)工具如下:
請求庫:selenium
HTML 解析:使用正則匹配
數(shù)據(jù)可視化:pyecharts
數(shù)據(jù)庫:MongoDB
數(shù)據(jù)庫連接:pymongo
首先是選取爬蟲來源劣像,攜程與馬蜂窩沒有結(jié)構(gòu)化的數(shù)據(jù)乡话,我們就換一種思路。首先是想到百度指數(shù)耳奕,如圖:
但是分析源代碼之后绑青,你就會發(fā)現(xiàn)問題了......它的數(shù)據(jù)都是以圖片展示的,你不能直接獲取到源碼屋群≌⒂ぃ考慮到國慶馬上就要到來,我換了一個指數(shù)平臺谓晌,轉(zhuǎn)戰(zhàn)搜狗指數(shù)掠拳,這個平臺可以直接獲取到源數(shù)據(jù)癞揉,關(guān)鍵是還有微信熱度可以爬取纸肉。當(dāng)然,你執(zhí)意要使用百度指數(shù)也是有方法的喊熟,抓取到數(shù)據(jù)之后柏肪,使用圖像識別來識別文中的數(shù)據(jù)即可,這里就不展開了芥牌。
關(guān)于數(shù)據(jù)清洗方面烦味,這里篩選了數(shù)據(jù)量過小和數(shù)據(jù)量異常大的景點(diǎn):
由于篇幅原因,這就只展示部分主要代碼:
整篇爬蟲文章分析到這里就結(jié)束了壁拉。最后祝大家假期愉快谬俄,不用寫代碼。