Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 午夜精品久久久久久久久,亚洲男人天堂,中文字幕一区二区三区永久

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          盤點(diǎn)12個Python數(shù)據(jù)可視化庫,通吃任何領(lǐng)域

          盤點(diǎn)12個Python數(shù)據(jù)可視化庫,通吃任何領(lǐng)域


          數(shù)據(jù)可視化的研究熱潮中,如何讓數(shù)據(jù)生動呈現(xiàn),成了一個具有挑戰(zhàn)性的任務(wù),隨之也出現(xiàn)了大量的可視化軟件。相對于其他商業(yè)可視化軟件,Python是開源且免費(fèi)的,而且具有易上手、效果好的優(yōu)點(diǎn)。

          大家普遍第一次接觸到的Python數(shù)據(jù)可視化庫基本上都是Matplotlib。Python還有很多數(shù)據(jù)可視化庫,本文盤點(diǎn)了12款常用的Python數(shù)據(jù)可視化庫,挑選適合自己業(yè)務(wù)的那一款吧!

          深入學(xué)習(xí)Python商業(yè)數(shù)據(jù)可視化技術(shù),推薦閱讀《Python商業(yè)數(shù)據(jù)可視化實(shí)戰(zhàn)》

          Python有很多數(shù)據(jù)可視化庫,這些數(shù)據(jù)可視化庫主要分為探索式可視化庫交互式可視化庫。前者透過簡單直接的視覺圖形,更方便用戶看懂原數(shù)據(jù),后者主要用于與業(yè)務(wù)結(jié)合過程中展現(xiàn)總體分析結(jié)果。

          探索式可視化庫

          探索式分析最大的優(yōu)勢在于,可以讓業(yè)務(wù)人員在海量數(shù)據(jù)中“自由發(fā)揮”,不受數(shù)據(jù)模型的限制。通過探索式分析和可視化,業(yè)務(wù)人員可以快速發(fā)現(xiàn)業(yè)務(wù)中存在的問題。

          Python探索式可視化庫主要包括如下幾個。


          1Matplotlib

          Matplotlib是Python數(shù)據(jù)可視化庫的元老,盡管它已有十多年的歷史,但仍然是Python社區(qū)中使用最廣泛的繪圖庫,編寫幾行代碼即可生成線圖、直方圖、功率譜密度圖、條形圖、錯誤圖、散點(diǎn)圖等。

          Python的可視化庫眾多,各有各的特點(diǎn),但是Matplotlib是一個非常基礎(chǔ)的Python可視化庫,如果需要學(xué)習(xí)Python數(shù)據(jù)可視化,那么Matplotlib是非學(xué)不可的,之后再學(xué)習(xí)其他庫就比較簡單了。Matplotlib的中文學(xué)習(xí)資料比較豐富,其中最好的學(xué)習(xí)資料是其官方網(wǎng)站的幫助文檔,大家可以在上面查閱自己感興趣的內(nèi)容。


          2Seaborn

          Seaborn利用Matplotlib的強(qiáng)大功能,只用幾行代碼就能創(chuàng)建出漂亮的圖表。它們的關(guān)鍵區(qū)別在于,Seaborn的默認(rèn)款式和調(diào)色板設(shè)計更加美觀和現(xiàn)代。由于Seaborn是在Matplotlib基礎(chǔ)上構(gòu)建的,因此用戶還需要了解Matplotlib以便調(diào)整Seaborn的默認(rèn)值。

          Seaborn同Matplotlib一樣,也是Python進(jìn)行數(shù)據(jù)可視化分析的重要第三方包。

          Seaborn在Matplotlib的基礎(chǔ)上進(jìn)行了更高級的API封裝,使用戶繪圖更加容易,所繪圖形更加漂亮。Seaborn是基于Matplotlib的一個模塊,專用于統(tǒng)計可視化,可以和Pandas進(jìn)行無縫連接,使可視化的初學(xué)者更容易上手。

          相對于Matplotlib,Seaborn語法更簡潔,兩者的關(guān)系類似于Numpy和Pandas的關(guān)系。但是需要注意的是,應(yīng)該把Seaborn視為Matplotlib的補(bǔ)充,而不是替代物。

          Seaborn庫旨在以數(shù)據(jù)可視化為中心來挖掘與理解數(shù)據(jù),它提供的面向數(shù)據(jù)集制圖函數(shù)主要是對行列索引和數(shù)組的操作,包含對整個數(shù)據(jù)集進(jìn)行內(nèi)部的語義映射與統(tǒng)計整合,以此生成信息豐富的圖表。


          3Pyecharts

          Pyecharts是我國開發(fā)人員開發(fā)的,相比較Matplotlib、Seaborn等可視化庫,Pyecharts十分符合國內(nèi)用戶的使用習(xí)慣。

          Pyecharts的目的是實(shí)現(xiàn)Echarts與Python的對接,以便在Python中使用Echarts生成圖表。

          Echarts是百度開源的一個數(shù)據(jù)可視化JavaScript庫,生成的圖的可視化效果非常好,其憑借良好的交互性,精巧的圖表設(shè)計,得到了眾多開發(fā)者的認(rèn)可


          4Missingno

          處理缺失的數(shù)據(jù)是一件讓人痛苦的事,Missingno通過使用視覺摘要來快速評估數(shù)據(jù)集的完整性,而不是通過大篇幅的表格。它可以根據(jù)熱力圖或樹狀圖的完成度或點(diǎn)的相關(guān)度對數(shù)據(jù)進(jìn)行過濾和排序。


          交互式可視化庫

          數(shù)據(jù)可視化可以是靜態(tài)的也可以是交互的,交互式的數(shù)據(jù)可視化是指人們使用計算機(jī)和移動設(shè)備深入圖表和圖形的具體細(xì)節(jié),然后用交互的方式改變他們看到的數(shù)據(jù)。Python交互式可視化庫主要包括如下幾個。


          1Bokeh

          Bokeh基于JavaScript實(shí)現(xiàn)交互式可視化,它是原生Python語法,它可以在Web瀏覽器中實(shí)現(xiàn)美觀的視覺效果。

          它的優(yōu)勢在于能夠創(chuàng)建交互式的網(wǎng)站圖,可以很容易地將數(shù)據(jù)輸出為JSON對象、HTML文檔或交互式Web應(yīng)用程序。Bokeh還支持流媒體和實(shí)時數(shù)據(jù)。

          但是它也有明顯的缺點(diǎn):一是版本時常更新,最重要的是有時語法不向下兼容,這對于開發(fā)者來說是噩夢;二是語法晦澀,與Matplotlib相比,可以說是有過之而無不及。


          2HoloViews

          HoloViews是一個開源的Python庫,旨在使數(shù)據(jù)分析和可視化更加簡便,可以用非常少的代碼行完成數(shù)據(jù)分析和可視化。

          除了默認(rèn)的Matplotlib后端,它還添加了一個Bokeh后端。結(jié)合Bokeh提供的交互式小部件,可以使用HTML5和WebGL快速生成交互式視圖,以及進(jìn)行高維數(shù)據(jù)的可視化探索。


          3Plotly

          Plotly是一個數(shù)據(jù)可視化的在線平臺,與Bokeh一樣,Plotly的強(qiáng)項在于制作交互式視圖,但它提供了一些在大多數(shù)庫中沒有的圖表,如等高線圖、樹狀圖和3D圖表??梢栽诰€繪制條形圖、散點(diǎn)圖、餅圖、直方圖等多種圖形,可以畫出很多媲美Tableau的高質(zhì)量圖。

          Plotly支持在線編輯圖形,支持Python、JavaScript、MATLAB和R等多種語言的API。Plotly生成的所有圖表實(shí)際上都是由JavaScript產(chǎn)生的,無論是在瀏覽器還是在Jupyter中,所有的可視化、交互都是基于plotly.js的,它是一個高級的聲明性圖表庫,提供了20多種圖表類型,包含3D圖表、統(tǒng)計圖和SVG地圖等。


          4pygal

          與Bokeh和Plotly一樣,pygal提供了可以嵌入Web瀏覽器的交互式視圖。區(qū)別在于,它能夠?qū)D表輸出為SVG格式。如果用戶使用較小的數(shù)據(jù)集,則輸出位SVG格式的圖像就可以了,但是如果用戶制作的圖表包含數(shù)十萬個數(shù)據(jù)點(diǎn),那么它們就會很難被渲染并變得反應(yīng)遲鈍。

          Pygal繪制線圖的方法很簡單,可以將圖表渲染為一個SVG文件,用戶使用瀏覽器打開SVG文件就可以查看生成的圖表。


          5plotnine

          plotnine是Python中圖形語法的一種實(shí)現(xiàn),它基于ggplot2包,語法繪圖功能強(qiáng)大,可以輕松將數(shù)據(jù)映射到構(gòu)成圖的可視對象,然后創(chuàng)建自定義的圖形。plotnine提供各種不同的可視化視圖,易于適應(yīng)定制化輸出,安裝十分簡單,用戶可以通過pip install plotnine命令直接安裝。

          plotnine的優(yōu)點(diǎn)為代碼簡潔,易學(xué);繪制出的圖流暢大方;不需要很多的代碼就可以繪制出很不錯的圖。在使用plotnine繪圖之前,首先需要理解繪圖的基本概念。


          6Altair

          Altair是一個專為Python編寫,它可以讓數(shù)據(jù)科學(xué)家更多地關(guān)注數(shù)據(jù)本身和其內(nèi)在的聯(lián)系。

          因為是基于Vega-Lite(交互式圖形語法)的聲明性統(tǒng)計可視化庫,Altair API具有簡單、友好、一致等特點(diǎn)。

          聲明意味著用戶只需要提供數(shù)據(jù)列與編碼通道之間的鏈接,例如,x軸、y軸、顏色等,其余的繪圖細(xì)節(jié)它會自動處理。聲明使Altair變得簡單、友好和一致,用戶使用Altair可以輕松設(shè)計出有效且美觀的可視化代碼。


          7ggplot

          ggplot是基于R語言的ggplot2包和Python的繪圖系統(tǒng)。ggplot的運(yùn)行方式與Matplotlib不同,它允許用戶對組件進(jìn)行分層以創(chuàng)建完整的繪圖。例如,用戶可以從軸開始畫,然后添加點(diǎn),接著添加線、趨勢線等。雖然圖形語法被認(rèn)為是繪圖的“直觀”方法,但經(jīng)驗豐富的Matplotlib用戶可能需要時間來適應(yīng)這個新的方式。


          8Gleam

          Gleam的靈感來自R語言的Shiny包。它允許用戶僅使用Python腳本就可將分析結(jié)果轉(zhuǎn)換為交互式Web應(yīng)用程序,因此用戶不必了解任何其他語言,如HTML、CSS或JavaScript。Gleam適用于任何Python數(shù)據(jù)可視化庫。在創(chuàng)建繪圖后,用戶可以在它的上面添加字段,以便對數(shù)據(jù)進(jìn)行篩選和排序。


          圖書推薦

          ▊《Python商業(yè)數(shù)據(jù)可視化實(shí)戰(zhàn)(全彩)》

          王國平 著

        1. 通過可視化分析,更好地挖掘數(shù)據(jù)的價值
        2. 既包括操作方法和技巧,又融入了數(shù)據(jù)可視化實(shí)戰(zhàn)案例
        3. 本書由淺入深、循序漸進(jìn)地介紹了基于Python的商業(yè)數(shù)據(jù)可視化技術(shù),并結(jié)合實(shí)際案例詳細(xì)介紹了Python在數(shù)據(jù)可視化方面的具體應(yīng)用。

          重點(diǎn)介紹了Python的9個可視化庫,分別為Matplotlib、Seaborn、Pyecharts、Bokeh、HoloViews、Plotly、Pygal、plotnine、Altair,并介紹了商業(yè)數(shù)據(jù)可視化的思維。讀者通過學(xué)習(xí)本書,能夠輕松、快速地掌握商業(yè)數(shù)據(jù)可視化技術(shù)。

          者:dataplusscience

          翻譯:和中華

          校對:丁楠雅

          本文約2000字,建議閱讀8分鐘。

          本文介紹了Tableau中如何把箱形圖和單位直方圖分離。



          Steve Wexler在他最近的一篇博客文章《Is this better than a Jitterplot? Could be》中探索了可視化jitterplot圖(帶有隨機(jī)jitter的點(diǎn)圖,jitter用來區(qū)分點(diǎn))的替代方法:

          博客文章鏈接:https://www.datarevelations.com/betterthanjitterplot.html

          在本文中,我將展示如何創(chuàng)建與單位直方圖(unit histogram)區(qū)分的箱形圖(box plot)。

          譯者注:jitter是一個隨機(jī)值,分配給點(diǎn)用來將其區(qū)分,這樣就不會重疊了,詳細(xì)內(nèi)容可以參見下面這篇文章:Methods for Creating Jitter in Tableau:https://www.dataplusscience.com/TableauJitter.html

          單位直方圖

          史蒂夫在他的帖子以及另一篇文章”Tableau visualization is here“中描述了如何制作單位直方圖:

          Tableau visualization is here:https://public.tableau.com/profile/swexler

          我將用它作為此文章的起點(diǎn),因此如果您想跟著練習(xí),請在此處下載他的workbook:

          下載鏈接:https://public.tableau.com/workbooks/DataRevelations_MeVsOthers_UnitHistogram.twb

          這是史蒂夫做的單位直方圖:



          刪除分步帶(distribution bands)并添加箱形圖

          下載并打開Steve的Tableau workbook后,右鍵單擊主儀表板選項卡“Salary Comparison Jitterplot Dashboard(2)”并選擇“Unhide All Sheets”。

          轉(zhuǎn)到名為Breakout with Quartiles的工作表。單擊分布帶中的線并將其拖離Tableau Canvas。另一種方法是右鍵單擊該線并選擇“刪除”。對分步帶也重復(fù)此步驟。您現(xiàn)在應(yīng)該得到了一個沒有分布帶的單位直方圖。

          單擊左上角的“分析”選項卡。單擊并將箱形圖拖動到Tableau canvas并將其放在SUM(continuous Bin)上。這將為單位直方圖添加一個箱形圖。

          這很簡單,但請注意,箱形圖的中心位于窗格中并覆蓋了一些點(diǎn)。



          讓我們探討一些將箱形圖移開的辦法。

          改變箱形圖的位置

          第一種方法是通過創(chuàng)建更多點(diǎn)來移動箱形圖。我們將通過創(chuàng)建另一個膠囊(pill)并使用雙軸來實(shí)現(xiàn)這一目標(biāo):

          雙擊INDEX() 膠囊右側(cè)白色區(qū)域的Column Shelf。這將允許您輸入行內(nèi)公式。輸入-20并按Enter鍵。右鍵單擊新膠囊并選擇“Dual Axis”。右鍵單擊圖表頂部的新二級X軸,然后選擇“Synchronize Axis”。 在SUM(-20)的標(biāo)記卡上,單擊顏色并將不透明度設(shè)置為0%,將邊框設(shè)置為“None”。

          您現(xiàn)在應(yīng)該得到了一個單位直方圖,它從箱形圖的中心開始。



          但是,您會注意到許多點(diǎn)仍然隱藏在箱形圖的后面。您可以將X軸更改為固定以調(diào)整位置,但我認(rèn)為很難以不與點(diǎn)重疊并能顯示所有點(diǎn)的方式固定箱形圖的位置。

          將箱形圖與單位直方圖分開

          分離箱形圖和點(diǎn)圖的最明顯方法是為每個箱形圖和單位直方圖創(chuàng)建工作表。在本例中,有四代,所以將有八個工作表。這種方法允許您為每一代創(chuàng)建一個不同的視圖,一個帶有箱形圖,另一個帶有單位直方圖,并且可以非常直接地復(fù)制整個工作表并相應(yīng)地調(diào)整過濾器以創(chuàng)建每個視圖。但這并不是一個好辦法,當(dāng)你有更多類別時,很快就會變得笨拙。

          另一種分離它們的方法是復(fù)制數(shù)據(jù)。這可以使用自定義SQL,Tableau Prep,Alteryx或在原始數(shù)據(jù)源中預(yù)處理來完成。為了便于演示,您可以在此處下載重復(fù)的數(shù)據(jù):

          下載鏈接:https://www.dataplusscience.com/files/BoxandUnitHisto.xlsx

          此電子表格只是簡單地復(fù)制原始數(shù)據(jù)并帶有一個名為“Column”的新列。第一組數(shù)據(jù)在此新列中具有值“box”,第二組數(shù)據(jù)具有值“dots”。

          從頂部菜單中選擇“Data”,然后選擇“New Data Source”。選擇“Microsoft Excel”并選擇您下載的文件"BoxandUnitHisto.xlsx"。這將打開新的數(shù)據(jù)源。再次單擊"Breakout with quartiles"選項卡來返回Tableau canvas。再次從頂部菜單中選擇“Data”,然后選擇“Replace Data Source”?!癈urrent:”數(shù)據(jù)源應(yīng)設(shè)置為"Reshaped Survey Data",“Replacement:”數(shù)據(jù)源應(yīng)設(shè)置為"Sheet1(BoxandUnitHisto)"

          這將使用復(fù)制了所有記錄的新數(shù)據(jù)源替換原來的單個數(shù)據(jù)源,并具有一個名為“Column”的新字段。

          復(fù)制數(shù)據(jù)集的一個大問題是計算可能會受到影響。例如,Continuous Bin,它是Y軸上的主要字段,現(xiàn)在已經(jīng)翻倍了。有很多方法可以解決這個問題,但是我們將對此進(jìn)行簡單的修復(fù),即將數(shù)字除以2。注意這可能不是所有情況下的最佳解決方案:

          右鍵單擊Continuous Bin并將/ 2添加到公式中,以便該值除以2。 在Breakdown之后將Column膠囊拖到Column shelf上。向上拖動SUM(-20)離開canvas以刪除膠囊或右鍵單擊并選擇“Remove”。 右鍵單擊Continuous Bin并選擇“Duplicate” 右鍵單擊新字段Continuous膠囊(copy)并選擇“Edit” 調(diào)整公式:IF [Column]='box' then INT([Value] / [Bin Size])* [Bin Size] / 2 ELSE null END 將新的Continuous膠囊(copy)拖動到“Continuous Bin”旁邊的Rows shelf 右鍵單擊Continuous膠囊(copy)并選擇“Dual Axis” 右鍵單擊右側(cè)的新二級Y軸,然后選擇“Synchronize Axis” 將Dots窗格中的箱形圖從Tableau Canvas中拖出以將其刪除,或者右鍵單擊Dots窗格中的箱形圖并選擇“Remove”

          現(xiàn)在,您將擁有一個僅在標(biāo)有“box”的左窗格窗口中的箱形圖,而不是標(biāo)記為“dots”的第二個窗格。讓點(diǎn)在“box”窗格中消失有點(diǎn)棘手。我想你會發(fā)現(xiàn)不透明度,顏色,邊框和尺寸在此刻都不起作用。所以我們將創(chuàng)建另外兩個字段來處理這個問題:

          計算字段:Col Num公式:IF [Column]='box' THEN 0 ELSE 1 END 計算字段:Count公式:IF avg([Col Num])=0 THEN null ELSE index()END 使用新字段Count替換Column shelf上的INDEX()右鍵單擊Column shelf上的Count,然后選擇“Compute Using”并將其設(shè)置為“Resp ID”

          您現(xiàn)在應(yīng)該在第一個列窗格中有一個箱形圖,在第二個列窗格中有一個單位直方圖。其余的只是根據(jù)需要進(jìn)行格式化:



          在圖表區(qū)域中單擊鼠標(biāo)右鍵,然后選擇“Format” 選擇“Borders”并將“Column Divider Level:”向左滑動一個位置。 右鍵在二級Y軸的Continuous膠囊(copy)點(diǎn)擊并取消選中“Show Header”以刪除 右鍵單擊帶有“box”和“dots”的列標(biāo)題,然后取消選中“Show Header”以刪除根據(jù)需要調(diào)整點(diǎn)的顏色。



          復(fù)制數(shù)據(jù)肯定會有缺點(diǎn),但是,這里的最終結(jié)果是一個不與單位直方圖重疊的箱形圖,并且與在點(diǎn)的頂部繪制的典型箱形圖相比具有一些優(yōu)點(diǎn)。這種方法也可以用于分布帶。只需用分布帶替換箱形圖窗格。



          這也可以與jitterplot一起使用,但我發(fā)現(xiàn)單位直方圖比使用jitter隨機(jī)放置點(diǎn)更有用。



          我希望這篇文章對您有所幫助。如果您有任何問題,請隨時給我發(fā)電子郵件Jeff@DataPlusScience.com

          原文標(biāo)題:

          How to Separate a Box Plot and Unit Histogram in Tableau

          原文鏈接:

          https://www.dataplusscience.com/BoxandUnitHisto.html

          譯者簡介

          和中華,留德軟件工程碩士。由于對機(jī)器學(xué)習(xí)感興趣,碩士論文選擇了利用遺傳算法思想改進(jìn)傳統(tǒng)kmeans。目前在杭州進(jìn)行大數(shù)據(jù)相關(guān)實(shí)踐。加入數(shù)據(jù)派THU希望為IT同行們盡自己一份綿薄之力,也希望結(jié)交許多志趣相投的小伙伴。

          于數(shù)據(jù)分析師來說,數(shù)據(jù)獲取通常有兩種方式,一種是直接從系統(tǒng)本地獲取數(shù)據(jù),另一種是爬取網(wǎng)頁上的數(shù)據(jù),爬蟲從網(wǎng)頁爬取數(shù)據(jù)需要幾步?總結(jié)下來,Python爬取網(wǎng)頁數(shù)據(jù)需要發(fā)起請求、獲取響應(yīng)內(nèi)容、解析數(shù)據(jù)、保存數(shù)據(jù)共計4步。

          本文使用Python爬取去哪兒網(wǎng)景點(diǎn)評論數(shù)據(jù)共計100條數(shù)據(jù),數(shù)據(jù)爬取后使用Tableau Public軟件進(jìn)行可視化分析,從數(shù)據(jù)獲取,到數(shù)據(jù)清洗,最后數(shù)據(jù)可視化進(jìn)行全流程數(shù)據(jù)分析,下面一起來學(xué)習(xí)。

          示例工具:anconda3.7

          本文講解內(nèi)容:數(shù)據(jù)獲取、數(shù)據(jù)可視化

          適用范圍:網(wǎng)頁數(shù)據(jù)獲取及評論分析

          網(wǎng)頁數(shù)據(jù)爬取

          Python爬取網(wǎng)頁數(shù)據(jù)需要發(fā)起請求、獲取響應(yīng)內(nèi)容、解析數(shù)據(jù)、保存數(shù)據(jù)共計4步,懂的數(shù)據(jù)爬取的原理后,進(jìn)行數(shù)據(jù)爬取。

          1、發(fā)起請求

          以去哪兒旅行網(wǎng)站為例,爬取網(wǎng)頁數(shù)據(jù),首先發(fā)送請求。

          import requests
          u='https://travel.qunar.com/p-cs300100-xian-jingdian'#爬取網(wǎng)址
          response=requests.get(u)
          print('狀態(tài)碼:{}'.format(response.status_code))
          if response.status_code !=200:
             pass
          else:
             print("服務(wù)器連接正常")

          這里返回狀態(tài)碼為200,說明服務(wù)器連接正常,可以進(jìn)行數(shù)據(jù)爬取。

          2、獲取響應(yīng)內(nèi)容

          服務(wù)器連接正常后,直接打印返回內(nèi)容,這里返回整個網(wǎng)頁html。

          print(response.text)

          3、解析數(shù)據(jù)

          網(wǎng)頁結(jié)構(gòu)由復(fù)雜的html語言構(gòu)成,這里借助BeautifulSoup庫進(jìn)行解析。

          from bs4 import BeautifulSoup
          
          
          ri=requests.get(url=u)
          soupi=BeautifulSoup(ri.text,'lxml')#解析網(wǎng)址
          ul=soupi.find('ul',class_='list_item clrfix')
          lis=ul.find_all('li')
          lis

          對于特定的標(biāo)簽進(jìn)行定位,輸出text。

          print(soupi.h1.text)#標(biāo)簽定位,輸出text
          lis=ul.find_all('li')
          print(lis[0].text)

          建立一個字典,解析目標(biāo)標(biāo)簽內(nèi)容。

          li1=lis[0]
          dic={}
          dic['景點(diǎn)名稱']=li1.find('span',class_="cn_tit").text
          dic['攻略提到數(shù)量']=li1.find('div',class_="strategy_sum").text
          dic['評論數(shù)量']=li1.find('div',class_="comment_sum").text
          dic['lng']=li['data-lng']
          dic['lat']=li['data-lat']
          dic

          使用for循環(huán)解析標(biāo)簽內(nèi)容。

          import requests
          from bs4 import BeautifulSoup
          u1='https://travel.qunar.com/p-cs300100-xian-jingdian'
          ri=requests.get(url=u1)
          
          soupi=BeautifulSoup(ri.text,'lxml')#解析網(wǎng)址
          ul=soupi.find('ul',class_='list_item clrfix')
          lis=ul.find_all('li')
          for li in lis:
              dic={}
              dic['景點(diǎn)名稱']=li.find('span',class_="cn_tit").text
              dic['攻略提到數(shù)量']=li.find('div',class_="strategy_sum").text
              dic['評論數(shù)量']=li.find('div',class_="comment_sum").text
              dic['lng']=li['data-lng']
              dic['lat']=li['data-lat']
          print(dic)

          根據(jù)翻頁規(guī)律設(shè)置翻頁數(shù),這里設(shè)置一個列表,用來循環(huán)爬取前十頁數(shù)據(jù)。

          #根據(jù)翻頁規(guī)律,設(shè)置翻頁數(shù)
          urllst=[]
          for i in range(11):
              urllst.append('https://travel.qunar.com/p-cs300100-xian-jingdian'+str('-1-')+str(i))
              urllst=urllst[2:11]
              urllst.append('https://travel.qunar.com/p-cs300100-xian-jingdian')
          urllst

          4、保存數(shù)據(jù)

          新建一個空的數(shù)據(jù)框,用于保存數(shù)據(jù)。

          import pandas as pd
          dic=pd.DataFrame(columns=["景點(diǎn)名稱", "攻略提到數(shù)量", "評論數(shù)量", "lng", "lat"])
          dic

          在空的數(shù)據(jù)框中保存第一條數(shù)據(jù),并且使用for循環(huán),依次爬取其余頁面的數(shù)據(jù)。


          主站蜘蛛池模板: 日本欧洲视频一区| 日韩一区二区三区射精| 无码少妇一区二区性色AV| 麻豆AV无码精品一区二区| 亚洲中文字幕丝袜制服一区 | 日韩三级一区二区三区| ...91久久精品一区二区三区| 久久国产精品免费一区二区三区| 亚洲日韩AV一区二区三区中文| 国产精品毛片VA一区二区三区| 精品少妇一区二区三区在线 | 精品国产一区二区22| 国产av夜夜欢一区二区三区| 日韩美女视频一区| 日本免费一区尤物| 国产主播福利精品一区二区| 精品久久久久久中文字幕一区 | 亚洲日本一区二区三区在线 | 色妞AV永久一区二区国产AV| jazzjazz国产精品一区二区| 亚洲国产精品一区二区九九 | 亚洲国产成人一区二区精品区| 国产在线精品一区二区三区不卡 | 99精品国产一区二区三区不卡 | 国产亚洲情侣一区二区无码AV | 亚洲色无码专区一区| 国产乱码一区二区三区| 亚洲av日韩综合一区久热| 国产精品成人免费一区二区| 国产精品久久久久久一区二区三区 | 一区二区免费国产在线观看| 无码av不卡一区二区三区| 一区二区国产精品| 日本一区二区在线| 精品视频一区二区三区四区 | 亚洲成AV人片一区二区| 精品一区二区视频在线观看| 男人的天堂av亚洲一区2区| 精品一区二区三区在线播放| 中文字幕一区在线播放| 久久精品视频一区|