亚洲直播在线一区_国产免费一区二区三区_在线观看h片_日韩三级在线免费观看_亚洲精品乱码日韩_自拍视频在线看_国产精品剧情在线亚洲_精品一区二区三区国产_丝袜美腿诱惑一区二区三区_欧美区一区二区三区_www.av99_亚洲国产日韩欧美在线

你好,游客 登錄 注冊 搜索
背景:
閱讀新聞

用Python偷偷告訴你國慶8億人都去哪兒浪?

[日期:2019-09-29] 來源:51CTO技術棧  作者:崔皓 [字體: ]

 

祖國 70 周年的華誕一天天臨近,各行各業都在為祖國母親慶祝生日。作為一個 IT 人,也想貢獻一份綿薄之力。

 

 

據文化和旅游部消息稱,預計 2019 年國慶旅游人次有望達到近 8 億。

 

 

#國慶假期或有近 8 億人次出游#這個話題還沖上了微博熱搜榜。

 

 

我仿佛已經看到了假期景區人山人海的畫面!

 

 

 

左思右想,最后落腳到國慶長假的旅游上,能否用網絡爬蟲看看,十一長假哪些城市最堵?哪些景區最熱門?

 

 

今天一起來看看,如何利用網絡爬蟲生成國慶期間的旅游熱點圖吧。

需求構思

制作一張旅游熱點圖,我們想要達到的效果是,在一張中國地圖上面標注出旅游熱點。

通過這張圖可以知道哪些城市,或者哪些區域是十一期間的旅游熱點。也就是說哪些地方在國慶期間去玩的人多。

 

 

構思圖

首先,我們要找一個數據源能夠獲取全國旅游信息。這里有一個思路就是訂票信息,哪些景點的訂票比較多,那么這些景點所在的城市就越熱門。類似的售票網站比較多,例如:攜程,去哪兒,途牛旅游之類的。

然后,需要分析網站上面的票務數據,將我們感興趣的旅游熱點信息爬取下來。分析信息的重點是針對網頁 HTML 信息的解析。

之后,將分析完畢的信息按照一定格式保存到本地,由于下載的信息可能和最終展示信息存在偏差,所以需要做一些數據清洗和數據聚合的操作。

最后,將整理好的信息輸入到地圖上顯示出來,這也是最后展示的環節。這里可以選擇對外展示的方式,例如:點圖,線圖,或者熱力圖。

網站分析

全局預覽

找了一圈旅游網站以后,發現在“去哪兒”的門票頁面中,有一個對旅游景點熱度的展示信息。

網頁會根據不同類型景點(自然風光,文化古跡等)進行查詢,查詢的結果會顯示景點名稱,景點熱度和城市信息。

如果我們將這些景點對應的區域的熱度進行匯總,就可以知道哪些區域對應的景點熱度了。

先打開去哪兒旅游,搜索“熱門景點”。下面列出了各個地方的熱門旅游景點。

 

 

針對景點主題做了分類,在展示的列表中,有景點名稱,景點級別,所在省市,以及熱度。其中省市和熱點是我們關心的數據。

URL 分析

 

 

URL 分析圖

打開 Chrome 的開發者工具來看看 HTML 頁面的結構。URL 的規律很容易能夠看明白:

  • Keyword 就是“熱門景點”,它是個常量,每次請求填寫這個就行了。
  • Subject 是景點分類,例如:自然風光,游樂場,文化古跡等等。這個需要一一羅列出來,是在一個變量后面用數組存放。
  • Page 是頁數,如果我們要爬取所有的信息,需要一頁一頁往下翻,所以這個數字會不斷增長。頁面滑動到最下方的時候,會看到 Next 按鈕,可以通過這個按鈕將所有頁面都遍歷到。

 

 

URL 全景圖

頁面元素分析

通過 Chrome 開發者工具中的元素選擇器,可以清楚地看到元素的 HTML 標簽。

 

 

列表元素圖

由于景點信息放在一個列表中,所以找到列表所在的元素,它放在 id 為“search-list”的 div 中。

也就是說在請求 URL 并獲取 HTML 之后,我就需要找到“search-list”div 并且獲取其中對應的項目信息。

獲取了列表元素之后,再來看看每一項旅游紀錄中的值如何獲取。其內容放在”sight_item”的 div 中。

 

 

列表中每項的示意圖

接下來分別將景點名稱,景點級別,所在省市,熱度,地址分別做分析。并且記錄他們元素的值在后面解析 HTML 的時候可以用到。

元素的 HTML 標簽獲取類似上面兩個元素。把上面這些元素的 ID 或者 Class 可以先記錄下來,在后面解析 HTML 的時候會用到。

爬蟲準備

構思和分析都完畢了,我們需要編寫代碼來實現想法。但是,在這之前我們需要把開發環境以及需要的工具準備好。

由于涉及到網絡爬蟲,以及圖形的展示。所以這里計劃使用 Python 作為開發語言,IDE 環境使用 PyCharm,展示圖表用到 Pyecharts。

普及一下 Pyecharts,Echarts 是一個由百度開源的數據可視化,憑借著良好的交互性,精巧的圖表設計,得到了眾多開發者的認可。

而 Python 是一門富有表達力的語言,很適合用于數據處理。當數據分析遇上數據可視化時,Pyecharts 就誕生了。

因此,Pyecharts 可以理解為用 Python 來實現的 Echarts 程序,可以在 Python 上面運行,并且提供良好的地理信息展示。

 

 

Pyecharts 圖標

另外 Pyecharts 的地理展示功能比較強大,這點也是我們需要利用的。

 

 

Pyecharts 展示中國地圖

針對 HTML 的解析我們使用了 BeautifulSoup。它是一個可以從 HTML 或 XML 文件中提取數據的 Python 庫,它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式。

 

 

BeautifulSoup 官網圖片

爬蟲編碼

萬事具備只欠東風,讓我們開始寫代碼吧,為國慶搬磚讓我快樂。這里我們把程序分成兩個部分來寫,一部分是爬取旅游熱點信息,另一部分是旅游熱點地圖展示。

爬取旅游熱點信息

 

 

程序流水圖

先說一下獲取旅游熱點信息的思路,大約分為四步:

  • 開始準備必要的文件和引入組件包。
  • 組合變量 URL 并且做網絡請求,請求不成功進行重試。
  • 下載 HTML 以后對其進行解析,找到旅游熱點列表,列表項,分析具體旅游信息。
  • 把分析完的信息保存到 csv 文件中。

因為我們需要請求網絡,解析 HTML,保存文件,所以需要引入一些 Python 的包:

  • 網絡請求
  • HTML 解析
  • 讀寫 csv
  • 在請求頭中偽裝瀏覽器
  • 錯誤重試,等待時間

 

 

接下來就是創建請求頭,請求頭中包括了請求的瀏覽器,語言,請求格式等信息。

這里我們是使用 fake_useragent 中 UserAgent 的 random 方法隨機產生瀏覽器的信息。

這樣在模擬瀏覽器訪問網站的時候,每次請求都會隨機模擬一種瀏覽器。例如:IE,Firefox,Chrome 等等。讓網站認為是不同的人,用不同的瀏覽器來訪問網站的。

 

 

接下來生成一個 csv 文件,用 utf-8 格式保存。這個文件是用來存放爬蟲信息。

在文件的表頭,我們分別定義了,“區域”,“名稱”等和景點相關的字段。在文件生成的時候就準備好這些列,等填入數據以后,可以方便查看。

 

 

定義一個下載景點內容的函數,這個函數接受 URL 作為參數,然后通過 requests 對象下載景點內容。

 

 

由于下載信息可能會遇到網絡問題,導致下載失敗。所以,我們需要定義一個下載失敗函數,在下載不成功的時候重試下載。

 

 

還記得之前分析的 URL 嗎?景點的類型和分頁是變量,這里我們定義一個生成 URL 的函數來處理這些變量。

我們會羅列需要搜索的景點類型在其中。Keyword 字段已經轉換成 ACSII 碼了,如果需要直接輸入中文字符,可以使用 from urllib.parse import quote 來實現。

另外,我們的開始搜索的頁面,使用 page=1,之后會解析頁面中的“next”按鈕,完成翻頁的功能。

 

 

好了,到此我們定義了文件,下載函數,重試下載函數,分類搜集函數,現在要定義最重要的 HTML 解析函數了。它的輸入參數是景點類型和 URL 地址。

依次執行以下工作:

  • 下載 HTML,并且轉換成 SOUP 對象。
  • 找到旅游景點的列表。找到 div 的 id 為‘search-list’的元素。用 soup 的 find 方法找到它。
  • 針對景點的項目進行遍歷。在‘search-list’元素下面,通過 findAll 方法找到 class 是‘sight_item’的項目,并且對其進行遍歷。
  • 解析具體景點信息:名稱,區域,省市,熱度,地址等等。
  • 找到翻頁按鈕,繼續往下載后面的頁面,并且再次解析。通過 find 方法找到 class 是‘next’的 a 標簽。

 

 

最后,執行 main 函數運行整個 Python 程序:

 

 

 

下載完成的 csv 圖

csv 看上去比較凌亂,把文件通過 xls 打開,看看格式化以后的熱點信息:

 

 

整理以后的旅游熱點圖

旅游熱點地圖展示

好了旅游熱點的信息已經抓到了,現在開始分析。這里建議將抓取和分析工作分成兩塊來進行。

因為,在抓取過程中會遇到網絡問題,解析問題或者反爬蟲的問題,而且抓取數據需要一段時間。

為了保證其獨立性,所以信息抓取可以單獨運行。當完成以后,把抓取的文件作為輸入放到展示程序中運行。

展示程序主要完成,數據清洗,匯總求和以及展示地圖的工作。這樣前面的爬蟲和后面的分析展示就連成一體了。

 

 

旅游熱點分析流程圖

首先我們依舊要引入幾個 Python 包,如下。其中 Geoopts 和 ChartType 都是用來展示地圖用的。

 

 

其次,我們需要裝載 csv 文件。雖然我們下載了很多信息,但是對于我們最重要的其實是省市和熱點信息。因為我們最后展示出來的就是,哪個城市是旅游的熱點。

 

 

城市,熱度信息圖

根據觀察,要計算城市的熱度,必須將城市信息分組以后求和,這個也是需要考慮的。

 

 

根據城市信息對熱度求和

將一些地圖中無法識別的地點,以及一些沒有熱度值的臟數據過濾掉,就可以將生成的城市,熱度列表傳給展示函數了。

 

 

最后,展示函數接受到列表參數,繪制熱力圖:

 

 

結果分析

先看看哪些區域是大家比較喜歡的旅游目的地,如下圖:

 

 

2019 國慶旅游熱力圖

從圖上可以看出北京,沿海地區(福建,廣州),江浙地區,甘肅地區是國慶期間比較熱門的景點。中部地區的武漢,由于軍運會將至,也成為了旅游的熱門城市。

 

 

2019 國慶旅游熱點圖

再來看看,TOP 20 的旅游熱點城市,如下圖:

 

 

TOP 20 的 5A 旅游景點:

 

 

總結

 

 

爬蟲思維導圖

在網絡爬蟲之前需要根據達到的目標進行構思,包括:選擇網站,分析網站,數據抓取,數據展示。

在分析網站時,需要注意以下幾點,包括全局分析,URL 分析,元素分析。

在爬蟲編程之前,需要針對工具,IDE,Python 類庫進行準備。爬蟲編碼分為,爬取旅游熱點信息和旅游熱點地圖展示。

推薦 打印 | 錄入:admin | 閱讀:
相關新聞      
本文評論   
評論聲明
  • 尊重網上道德,遵守中華人民共和國的各項有關法律法規
  • 承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
  • 本站管理人員有權保留或刪除其管轄留言中的任意內容
  • 本站有權在網站內轉載或引用您的評論
  • 參與本評論即表明您已經閱讀并接受上述條款
-->
亚洲视频精品在线观看| 在线观看中文| 麻豆久久精品| 欧美日韩福利视频| 亚洲欧洲日本专区| 成人a视频在线观看| 日韩欧国产精品一区综合无码| 在线看一区二区| 蜜桃视频免费网站| aaa国产一区| 欧美日韩视频免费在线观看| 夜间精品视频| 国产福利视频一区二区| 精品中文在线| 在线亚洲男人天堂| av3级在线| 欧美美女一区二区三区| 欧美日韩影视| 精品美女国产在线| 老司机性视频| 国产精品网站在线播放| 国产精品视频一二三四区| 老鸭窝毛片一区二区三区| 成人免费观看网站| 欧美a级在线| 97神马电影| 伊人久久成人| 九色视频成人porny| 亚洲人成免费| 久久久久一区二区| 日韩精品91亚洲二区在线观看| 国产亚洲欧美一区二区| 韩国欧美一区| 高清免费日韩| 另类av一区二区| 日韩视频专区| 九九在线精品视频| 日本一本中文字幕| 国产成人综合网| 在线观看18视频网站| 国产一区二区三区不卡在线观看| 亚洲精品9999| 国产精品伊人色| 国产在线播放观看| 国产精品污污网站在线观看| 加勒比在线日本| 亚洲国产精品影院| 国产黄色在线播放| 欧美tickling网站挠脚心| 成人免费高清观看| 在线观看亚洲区| 日韩一级成人av| 日韩在线观看www| 日韩欧美一区二区视频| ririsao久久精品一区| 亚洲成人aaa| 成人视屏在线观看| 九九久久久久久久久激情| 久久99国产精一区二区三区| 亚洲精品欧美日韩专区| 三级精品在线观看| 每日在线更新av| 亚洲欧美日本在线| jzzjzzjzz亚洲成熟少妇| 日韩高清av在线| 成人性生交大片免费看96| 国产福利精品在线| 亚洲人体大胆视频| 日韩伦理在线免费观看| 一区二区三区在线高清| 都市激情在线视频| 亚洲精品一区二区三区婷婷月| 亚洲电影有码| 国产精品美女www爽爽爽视频| 销魂美女一区二区三区视频在线| 青青青国产在线观看| 精品国产91久久久| free欧美| 国产在线久久久| 精品一区二区国语对白| 亚洲午夜精品视频| 中文字幕欧美人妻精品一区| 欧美性猛交xxxx免费看漫画 | 北条麻妃在线一区二区免费播放| 国产精品久久久久久久久久久久久| 国产亚洲午夜| 制服影音先锋| 亚洲国产精品久久久| 日本三级久久| 亚洲日本欧美在线| 亚洲国产综合91精品麻豆| www.51av欧美视频| 亚洲3p在线观看| 久久成人免费日本黄色| 黄页网址大全在线播放| 一区二区三区动漫| 亚洲每日更新| 日本女优北野望在线电影| 日韩精品视频中文在线观看| 亚洲欧美偷拍自拍| 色乱码一区二区三区在线| 亚洲国产天堂久久国产91| 国产精品久久占久久| 爆乳熟妇一区二区三区霸乳| 日韩精品中午字幕| 欧美日一区二区在线观看| 国产专区中文字幕| 久久精品色欧美aⅴ一区二区| 噜噜噜在线观看免费视频日韩 | 日韩一区二区三区高清| 亚洲精品成人精品456| 欧美在线va视频| 久久av二区| 日韩欧美在线看| 视频一区免费观看| 欧美gvvideo网站| 男女无套免费视频网站动漫| 亚洲精品电影久久久| 亚洲日本久久| 性欧美精品孕妇| 日本91av在线播放| 国产偷国产偷精品高清尤物| 久草在线资源福利站| 欧美成人一区二区在线| 一本色道a无线码一区v| 欧美在线电影| 疯狂做受xxxⅹ高潮视频免费| 日韩亚洲第一页| 国产精品影视在线| 97人人在线视频| 秋霞久久久久久一区二区| 色综合久久久久综合| 精品一区二区三区在线| **孕交吃奶水一级毛片| 国内精品久久久久伊人av| 91麻豆国产福利精品| 九九久久国产| 久久久一本二本三本| 在线a欧美视频| 国产成人一区二区精品非洲| 三级在线观看视频| 久久最新免费视频| 亚洲欧美在线免费观看| 国产精品456| avav成人| 香蕉视频网站入口| 26uuu国产精品视频| 国产精品欧美极品| 欧美久久香蕉| 五十度飞在线播放| 91牛牛免费视频| 在线精品视频免费播放| 亚洲看片一区| www欧美xxxx| 国产在线视频综合| 久久躁狠狠躁夜夜爽| 国产欧美日韩在线| 日本中文字幕在线一区| 裸体网站视频| 国产伦精品免费视频| 欧美性猛交xxxx黑人| 亚洲黄色av| 激情图片在线观看高清国产| 中文字幕一区综合| 尤物精品国产第一福利三区| 国产亚洲精品福利| 久久综合av| 怡红院在线观看| 国产素人在线观看| 国产成+人+综合+亚洲欧洲 | 亚洲人成精品久久久久久| 成人精品视频| yw193.com尤物在线| 日韩免费电影一区二区| 日韩亚洲精品视频| 亚洲一区电影777| 激情久久五月| 美女100%一区| 第四色亚洲色图| 国产精品 日韩| 国产香蕉97碰碰久久人人| 国产精品美女久久久久高潮| 久久精品国内一区二区三区水蜜桃| 精品国产精品网麻豆系列| 欧美日韩伦理在线免费| 国产秀色在线www免费观看| 小泽玛利亚av在线| 欧美最近摘花xxxx摘花| 欧美三级资源在线| 成人avav影音| 日韩电影免费网址| 国产激情在线播放| 国产videos| 黄瓜视频免费观看在线观看www| 久久人人看视频| 欧美成人福利视频| 亚洲人被黑人高潮完整版| 免费av成人在线| 欧美xxav| 懂色av色香蕉一区二区蜜桃|