python提取html表格_想知道世界谁最有钱?3行Python代码告诉你
想了解世界誰最有錢嗎?
維基百科有專門的網(wǎng)頁來描述世界最有錢的人。
當(dāng)然,為了快速和精確定位符合預(yù)期的結(jié)果,用Python來爬取網(wǎng)頁并分析是一個不錯的辦法。
但你知道嗎?Python中用于執(zhí)行Web爬網(wǎng)的兩個廣泛使用的庫,BeautifulSoup和Scrapy用起來很麻煩,甚至作詩說“難于上青天”。
為什么呢?因為需要從網(wǎng)頁里找到元素標(biāo)簽,然后根據(jù)它們提取文本,再清洗數(shù)據(jù)。而且在這個過程中會遇到各種各樣的坑。讓初涉其中的同學(xué)苦惱不已。“我不就看看有哪些富豪嗎?算了,還是用人眼看吧。”
有沒有幾行就能搞定抓取并分析的辦法呢?
常用Python進(jìn)行數(shù)據(jù)分析的同學(xué)可能不知道,手里使用的熟練工具Pandas卻隱藏了精于數(shù)據(jù)爬取的獨家絕技。本文將向您展示如何使用Pandas直接爬取表格數(shù)據(jù)的簡便方法。
用Pandas爬取網(wǎng)頁,并輕松結(jié)構(gòu)化
本文將從Wikipedia Page提取世界十大億萬富翁的詳細(xì)信息。(維基百科(Wikipedia),是一個基于維基技術(shù)的多語言百科全書寫作計劃,用多種語言編寫的網(wǎng)絡(luò)百科全書。非營利組織維基媒體基金會負(fù)責(zé)營運維基百科,接受捐贈。2018年12月,維基百科入圍2018世界品牌500強。)
下面將使用read_html的Pandas庫的方法讀取HTML表。
import pandas as pdurl ='https://zh.wikipedia.org/wiki/The_World%27s_Billionaires'df_list = pd.read_html(url)該腳本爬取指定鏈接,并將HTML表返回,并結(jié)構(gòu)化到DataFrame的列表中。
真正的王者,不在于千萬般閃亮動作。一個小動作就能完成其他工具庫幾十行的功能,Pandas,我服了!
接下來查看找到的數(shù)據(jù)總數(shù):
len(df_list)Output:32要訪問特定的表,只需訪問列表的該元素。例如,df_list[2]將返回下表:
進(jìn)階玩法一:把世界富豪們做個排名
上面只是介紹pandas的常規(guī)玩法,其實可以使用index_col參數(shù)來選擇表索引的特定列。這里按第二列財富進(jìn)行排名,從而實現(xiàn)將抓取的世界富豪排名。
例:
pd.read_html(url,index_col = 1)[2]返回下表:
從中看到亞馬遜的Jeff Bezos已經(jīng)成為當(dāng)仁不讓的首富了,第一名了。
進(jìn)階玩法二:用自然語言描述來實現(xiàn)自動統(tǒng)計返回
當(dāng)然,這個題目有點人工智能的味道,但實際并不是這么智能。呵呵,大家原諒下標(biāo)題黨。這個功能是利用match參數(shù)指定返回包含特定字符串或正則表達(dá)式的表的列頭,從而實現(xiàn)返回對應(yīng)列頭的數(shù)據(jù)列表功能。
例:
pd.read_html(url, match='Number and combined net worth of billionaires by year')[0].head()是不是太神奇了!pandas如何實現(xiàn)的這個功能呢?看看對應(yīng)原始網(wǎng)頁大家就應(yīng)該明白了。
太牛了!pandas直接抓取相對應(yīng)文本標(biāo)題的表格并結(jié)構(gòu)化輸出。
進(jìn)階玩法三:其他參數(shù)
skiprows 參數(shù)允許我們跳過起始的" n"行
header 參數(shù)可用于使指定的行作為列標(biāo)題
例:
pd.read_html(url,skiprows = 3,header = 0)[0] .head()在本文中,從了解世界富豪排名出發(fā),學(xué)習(xí)了如何使用pandas的read_html方法輕松地從頁面抓取HTML表并進(jìn)行解析。隨后,對read_html一些重要參數(shù)也進(jìn)行講解,借助這些參數(shù)可以進(jìn)一步讓我們輕松抓取所需的內(nèi)容。
Pandas 不僅僅是數(shù)據(jù)分析的王者,也是爬蟲世界的掃地僧啊。
- END -
文源網(wǎng)絡(luò),僅供學(xué)習(xí)之用。如有侵權(quán),聯(lián)系刪除。往期精彩◆ ?50款開源工具你都用過嗎?
◆ ?python+C、C++混合編程的應(yīng)用
◆ ?python網(wǎng)絡(luò)爬蟲的基本原理詳解
◆ ?Python自動操控excel,一小時解決你一天的工作
◆ ?如何用Python增強Excel,減少處理復(fù)雜數(shù)據(jù)的痛苦?
總結(jié)
以上是生活随笔為你收集整理的python提取html表格_想知道世界谁最有钱?3行Python代码告诉你的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: htm怎么让图片和搜索框在同一行_新手怎
- 下一篇: centos网络隔一段时间就断_“路由器