免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Python pandas獲取網(wǎng)頁中的表數(shù)據(jù)(網(wǎng)頁抓?。?/div>

excelperfect

標(biāo)簽:PythonExcel,pandas

現(xiàn)如今,人們隨時隨地都可以連接到互聯(lián)網(wǎng)上,互聯(lián)網(wǎng)可能是最大的公共數(shù)據(jù)庫,學(xué)習(xí)如何從互聯(lián)網(wǎng)上獲取數(shù)據(jù)至關(guān)重要。因此,有必要了解如何使用Pythonpandas庫從web頁面獲取表數(shù)據(jù)。此外,如果你已經(jīng)在使用Excel PowerQuery,這相當(dāng)于“從Web獲取數(shù)據(jù)”功能,但這里的功能更強(qiáng)大100倍。

從網(wǎng)站獲取數(shù)據(jù)(網(wǎng)頁抓?。?/span>

HTML是每個網(wǎng)站背后的語言。當(dāng)我們訪問一個網(wǎng)站時,發(fā)生的事情如下:

1.在瀏覽器的地址欄中輸入地址(URL),瀏覽器向目標(biāo)網(wǎng)站的服務(wù)器發(fā)送請求。

2.服務(wù)器接收請求并發(fā)回組成網(wǎng)頁的HTML代碼。

3.瀏覽器接收HTML代碼,動態(tài)運(yùn)行,并創(chuàng)建一個網(wǎng)頁供我們查看。

Web抓取基本上意味著,我們可以使用Python向網(wǎng)站服務(wù)器發(fā)送請求,接收HTML代碼,然后提取所需的數(shù)據(jù),而不是使用瀏覽器。

這里不會涉及太多的HTML,只是介紹一些要點,以便我們對網(wǎng)站和網(wǎng)頁抓取的工作原理有一個基本的了解。HTML元素或“HTML標(biāo)記”是用<>包圍的特定關(guān)鍵字。例如,以下HTML代碼是網(wǎng)頁的標(biāo)題,將鼠標(biāo)懸停在網(wǎng)頁中該選項卡上,將在瀏覽器上看到相同的標(biāo)題。注意,大多數(shù)HTML元素都需要一個開始標(biāo)記(例如,<title>)和一個相應(yīng)的結(jié)束標(biāo)記(例如,</title>)。

<title>Python pandas獲取網(wǎng)頁中的表數(shù)據(jù)(網(wǎng)頁抓?。?/span></title>

類似地,下面的代碼將在瀏覽器上繪制一個表,你可以嘗試將其復(fù)制并粘貼到記事本中,然后將其保存為“表示例.html”文件,應(yīng)該能夠在瀏覽器中打開它。簡要說明如下:

  • <table>…</table>繪制表格

  • <tr>…</tr>在表中繪制一行

  • <th>…</th>表示表格標(biāo)題

  • <td>…</td>表示表格數(shù)據(jù)

<html>

    <table>

        <tr>

           <th>用戶姓名</th>

           <th>國家</th>

           <th>城市</th>

           <th>性別</th>

           <th>年齡</th>

        </tr>

        <tr>

            <td>Forrest Gump</td>

           <td>USA</td>

           <td>New York</td>

           <td>M></td>

           <td>50</td>

        </tr>

        <tr>

<td>Mary Jane</td>

           <td>CANADA</td>

           <td>Toronto</td>

           <td>F</td>

           <td>30</td>

        </tr>

    </table>

</html>

使用pandas進(jìn)行網(wǎng)頁抓取的要求

了解了網(wǎng)站的基本構(gòu)建塊以及如何解釋HTML(至少是表格部分?。_@里只介紹HTML表格的原因是,大多數(shù)時候,當(dāng)我們試圖從網(wǎng)站獲取數(shù)據(jù)時,它都是表格格式。pandas是從網(wǎng)站獲取表格格式數(shù)據(jù)的完美工具!

因此,使用pandas從網(wǎng)站獲取數(shù)據(jù)的唯一要求是數(shù)據(jù)必須存儲在表中,或者用HTML術(shù)語來講,存儲在<table>…</table>標(biāo)記中。pandas將能夠使用我們剛才介紹的HTML標(biāo)記提取表、標(biāo)題和數(shù)據(jù)行。

如果試圖使用pandas從不包含任何表(<table>…</table>標(biāo)記)的網(wǎng)頁中“提取數(shù)據(jù)”,將無法獲取任何數(shù)據(jù)。對于那些沒有存儲在表中的數(shù)據(jù),我們需要其他方法來抓取網(wǎng)站。

網(wǎng)絡(luò)抓取示例

我們前面的示例大多是帶有幾個數(shù)據(jù)點的小表,讓我們使用稍微大一點的更多數(shù)據(jù)來處理。

我們將從百度百科獲取最新世界500公司名稱和相關(guān)信息:

https://baike.baidu.com/item/%E4%B8%96%E7%95%8C500%E5%BC%BA/640042?fr=aladdin

1(如果出現(xiàn)錯誤,根據(jù)錯誤提示處理。我的計算機(jī)上是沒有安裝lxml,安裝后正常)

上面的df實際上是一個列表,這很有趣……列表中似乎有3個項目。讓我們看看pandas為我們收集了什么數(shù)據(jù)……

2

第一個數(shù)據(jù)框架df[0]似乎與此無關(guān),只是該網(wǎng)頁中最先抓取的一個表。查看網(wǎng)頁,可以知道這個表是中國舉辦過的財富全球論壇。

3

第二個數(shù)據(jù)框架df[1]是該頁面上的另一個表,注意,其末尾,它表示有[500x 6]。這個表就是世界財富500強(qiáng)排名表。

4

第三個數(shù)據(jù)框架df[2]是該頁面上的第3個表,其末尾表示有[110x 5]。這個表是中國上榜企業(yè)表。

注意,始終要檢查pd.read_html()返回的內(nèi)容,一個網(wǎng)頁可能包含多個表,因此將獲得數(shù)據(jù)框架列表,而不是單個數(shù)據(jù)框架!

注:本文學(xué)習(xí)整理自pythoninoffice.com。

歡迎在下面留言,完善本文內(nèi)容,讓更多的人學(xué)到更完美的知識。

歡迎到知識星球:完美Excel社群,進(jìn)行技術(shù)交流和提問,獲取更多電子資料,并通過社群加入專門的微信討論群,更方便交流。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服