小課堂:如何用Excel抓取網頁數據

2021-02-25 拉小登


今日目標:

學習用Excel抓取網頁數據

昨天,有個女學員提問:

大致意思是這樣的:

1- 女,文科生,大三沒什麼課

2- 感覺Python是潮流,不學就落伍了

3- 想學Python,從哪裡開始?

很明顯,朋友圈的裡的python廣告看多了。

想學習數據爬取,何用python?用Excel就可以了。

Excel從2016以後的版本,就內置了強大的數據處理神器Power Query,可以直接在Excel裡,實現數據爬取。

今天給大家介紹兩種方法:

第1種方法,是方法1。

第2種方法,是方法2。

怎麼樣?厲害吧?

方法1

兩種方法的區別,主要看網頁的結構。

如果網頁中的數據,使用的是table標籤,那麼直接導入web網頁就可以了。

比如,我們經常在豆瓣上,看即將上映的電影列表,這個就是一個table標籤的網頁。

網頁的地址是:https://movie.douban.com/coming

使用Excel抓取數據的步驟是這樣的。

操作步驟1- Excel導入web數據

在「數據」選項卡中,點擊「自其它源」「自網站」。

2- 粘貼web網址

在彈出的對話框中,粘貼上面的網址,點擊「確定」

3- 加載表格數據

這個時候,你會看到的就是Power  Query的界面啦。

在窗口左側的列表中,選擇table0,右側就可以看到Power Query自動識別出來的表格數據了。

4- 加載數據到Excel

點擊「加載」,就可以把網頁數據抓取到表格中去了。

使用Power Query的好處是,如果網頁中的數據更新了,在導入結果上,右鍵「刷新」就可以同步數據。

注意

這裡說的是網頁中包含table標籤的數據。

什麼意思呢?就是網頁中的數據,本來就是一個表格結構,這個方法和你直接複製網頁數據,粘貼到表格裡,是一樣的意思。

對於那些非table標籤的網頁數據,這個方法不好使。

怎麼識別一個網頁是不是table標籤呢?很簡單,選擇任意一個數據,然後在網頁中點擊右鍵,選擇「檢查」。

然後你會看到網頁的原始碼,你不需要懂,只要看到當前高亮的代碼中,包含以下任意的標籤,就表示網頁用了table標籤,可以用這個方法。

<table>
<td>
<tr>

如果沒有的話,那就繼續看方法2。

方法2

使用table標籤保存數據,已經是非常古老的網頁技術了。現在的網頁大都使用div、span等格式更豐富、更靈活的標籤,來呈現數據。

這種網頁就不好直接導入了。

比如我常看的「知乎」,他們的網頁裡一個table都沒有。

用方法1導入到Power query裡,左側沒有table數據,就不好抓取了。

那怎麼辦呢?

這個時候就要直接抓取數據包了。

本質上,網頁中的數據都會包打包成一個數據包,發送個網頁後,網頁再讀取數據包進行渲染。

這個數據包常用的格式是JSON,那麼我們只要把JSON數據包抓取下來,也可以實現網頁數據抓取。

不管他,幹就完事兒了。

「下方高能預警」,如果你看不懂,可以直接跳過看方法3。

操作步驟

我們以知乎搜索Excel問題為例。

1- 識別數據包

首先,在頁面中點擊右鍵,選擇「檢查」。

然後,右側會出現網頁調試窗口,然後點擊「network」「xhr」,在這裡面可以看到所有的數據傳輸記錄。

嘗試著在知乎中搜索「Excel」,就可以看到數據的傳輸了。

向下滾動頁面,當右側列表匯總看到了「search_v3?t=」時,抓住它,這個就是我們需要的數據包。

2- 複製數據包連結

然後在這個數據包上,點擊右鍵選擇「copy link address」複製數據包的連結。

3- 導入json數據

接下來就進入到了Excel操作界面,在「數據」選項卡中,點擊「自其它源」「自網站」,粘貼數據包的連結。

點擊確定後,就進入到了Power Query的界面。

數據包的結構,像是我們的「文件夾」一樣,數據按照類別分別保存在不同的「子文件夾」中。

打開數據包「文件夾」的方式,就是在數據上,點擊右鍵選擇「深化」。

在數據上依次點擊「深化」就可以找到我們的數據了。

4- 批量讀取數據

最後,再寫幾個簡單的函數,把「子文件」數據批量的讀取出來。

在「主頁」選項卡中,點擊「高級編輯器」打開函數編輯窗口。

編寫幾個簡單的函數,我們就完成了數據的抓取。

最終抓取的數據如下:

高級玩法

當然,如果你比較熟悉Power Query的話,可以在上面的基礎上,再加入參數,可以根據表格中的「搜索詞」,實時的搜索知乎文章,一鍵刷新統計結果。

方法3

專業的事情交給專業的工具來做。

Power Query是專業的數據整理插件,不是數據爬取軟體,所以方法2,你看著可能會有些吃力。

在爬蟲這個領域,還是要用專業軟體,比如「后羿採集器」。點擊幾下按鈕,就可以輕鬆完成數據抓取。。

操作步驟

打開「后羿採集器」,在「網址」欄中粘貼入知乎的搜索網址,如:

然後點擊「智能採集」,接著后羿採集器會自動識別網頁中的數據,等待識別完成。

識別完成後,點擊「開始採集」,數據就開始爬取了。

爬取完成後,在彈出的對話框裡,點擊「導出」,數據就自動以表格的形式保存下來了。

總結

專業的事情,交給專業的工具來做。

1- 簡單的表格類網頁,使用Power Query抓取,舉手之勞。

2- 複雜的網頁,使用爬蟲軟體,也是點點按鈕的事情。

關於Power Query和爬蟲,我有兩篇更為詳細的文章,推薦給你,點擊圖片直達。

後臺回復知乎爬蟲,你會有意外收穫哦!

考考你

python可以爬蟲,但不是挖能的

Excel也可以爬蟲,但是沒有掌握高級的Power query技巧

最簡單爬蟲,還是使用爬蟲軟體

最後出一個小測試題吧!

我在國家統計局的網站中,找到了2010年的人口普查數據。

網址是:http://www.stats.gov.cn/tjsj/pcsj/rkpc/6rp/indexch.htm,或者點擊「閱讀原文」獲取。

這是一個典型的table類網頁。請使用Power Query功能,把這個數據抓取到表格中。

做完了,可以微博@拉登Dony,來at我交個作業。

好了今晚就到這裡,下課!

我是拉小登,一個會設計表格的Excel老師


= = 推薦文章 = =

【建議收藏】教你一個最最最最最最簡單的爬蟲方法

運營:99%的Excel使用者都不知道,Excel還可以做搜尋引擎,太神奇了

相關焦點

  • 抓取100頁網頁數據,你還在用複製粘貼?使用Excel即可輕鬆搞定
    Hello,大家好,今天跟大家分享下我們如何批量的抓取網頁中的數據,以抓取汽車投訴量跟大家分享下如何批量抓取網頁中的數據,這也是一個粉絲問道的問題,他準備買車想看下各個廠家的投訴量如何。話不多說,我們直接開始吧。
  • excel抓取網頁數據,並實現自動刷新,再也不用傻傻的複製粘貼了
    Hello,大家好,今天跟大家分享下我如何快速獲取網頁中的表格,並且可以實現自動刷新數據,他的操作也非常的簡單,話不多說讓我們直接開始吧我們想要獲取網頁中2020年GDP預測排名這個數據,如下圖一、獲取數據首選我們需要新建一個工作薄,打開它,然後點數據功能組,點擊新建查詢,然後選擇從其它源,選擇自網站這樣的話就會彈出一個對話框,將想要提取數據的網址直接複製進去,然後點擊確定,點擊確定後excel會自動的連接計算數據當計算完成後會進入
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    在當今社會,網際網路上充斥著許多有用的數據。我們只需要耐心觀察並添加一些技術手段即可獲得大量有價值的數據。而這裡的「技術手段」就是指網絡爬蟲。 今天,小編將與您分享一個爬蟲的基本知識和入門教程:什麼是爬蟲?網絡爬蟲,也叫作網絡數據採集,是指通過編程從Web伺服器請求數據(HTML表單),然後解析HTML以提取所需的數據。
  • Power Query從網絡抓取數據
    有一個問題經常被討論;"如何將網頁中的數據刮到 Excel 中?
  • Excel如何將網站數據導入到表格中?
    excel如何將網站的數據導入到表格裡面?有時我們需要抓取網站的數據,如何將其導入到excel表中呢?下面小編就來給大家操作一下。1.首先打開中國統計信息網,然後選擇人口普查的數據,要將其導excel表中。
  • 表格型數據的抓取與存儲
    函數將中國上市公司信息快速抓取(抓取少量或次數較少的情況推薦使用)# for i in range(1, 11):  # 只爬取10頁數據#  url = 'http://s.askci.com/stock/a/?
  • 使用 Scrapy 快速抓取網頁
    Scrapy 是 Python 中一個非常棒的網頁抓取框架。它可以在大規模進行網頁抓取時,處理一些常見的問題。多線程根據連結逐層抓取解析數據校驗保存為多種數據格式或保存到資料庫其他Scrapy 與其它常用的庫如 Requests 或 BeautifulSoup 之間的區別非常明顯。它能以一種簡單的方式解決網頁抓取中常見的問題。
  • excel怎麼抓取網站的數據到表格中
    excel怎麼抓取網站的數據到表格中在工作中需要爬取,一些網站上的數據,導入到excel工作表中,常用的一般會使用python語言爬取,網站數據,但是對於收集一些簡單的數據再去學習一門語言相對比較麻煩,在excel其實自帶就有獲取網站數據的功能
  • R語言爬蟲系列6|動態數據抓取範例
    大約很早之前,小編就寫過關於R語言爬蟲新貴rvest的抓取介紹,之前說rvest+SelectGadgetor是結構化網頁抓取的實戰利器,大家的溢美之詞不斷。詳情可見推文:R語言爬蟲利器:rvest包+SelectorGadget抓取鏈家杭州二手房數據 但網絡爬蟲這個江湖太險惡,單靠一招rvest行走江湖必然兇多吉少,一不小心碰到什麼AJAX和動態網頁憑僅掌握rvest的各位必定束手無策。本文小編就簡單介紹下在用R語言進行實際的網絡數據抓取時如何將動態數據給弄到手。
  • rvest包抓取Google數據
    在這篇文章,主要展示的是如何抓取Google學術網頁。
  • 2019年七大優秀的網頁抓取工具
    2019年七大優秀的網頁抓取工具 網際網路不斷湧現出新的信息,新的設計模式和大量的數據。將這些數據組織到一個獨特的庫中並非易事。不過,有大量優秀的網頁抓取工具可供使用。
  • Web Scraping(網頁抓取)基本原理 - 白話篇
    統稱為「爬蟲」,但實際上,所謂的「爬蟲」,並不是特別準確,因為「爬蟲」也是分種的,常見的「爬蟲」有兩種:網路爬蟲 (Web Crawler),又稱 Spider;Spiderbot網頁抓取簡單的說 Web Scraping,(在本文裡)就是指,用Python代碼,從肉眼可見的網頁上,抓取數據。為什麼需要 Web Scraping?因為,重複工作太多,自己做,可能會累死!代碼的適用實例有哪些?
  • excel實現網頁「爬蟲」
    excel實現網頁「爬蟲」最近python語言很火,Python中的爬蟲最火,就是通過技術手段獲得需要的資源,那我也用excel蹭一波熱度,使用excel實現網頁「爬蟲」。     第一步:在【數據】選項-【獲取外部數據】
  • 數據從業者必讀:抓取了一千億個網頁後我才明白,爬蟲一點都不簡單
    流行的Python爬蟲框架Scrapy開發者Scrapinghub分享了他們抓取一千億個網頁後的經驗之談。現在爬蟲技術似乎是很容易的事情,但這種看法是很有迷惑性的。開源的庫/框架、可視化的爬蟲工具以及數據析取工具有很多,從網站抓取數據似乎易如反掌。然而,當你成規模地在網站上抓東西時,事情很快就會變得非常棘手。
  • 不寫代碼,你也可以抓取任意公眾號
    3、新榜(https://www.newrank.cn/):新榜的「公眾號回採」功能,可以抓取文章的閱讀數、點讚數、題圖、等等等,多維度的數據。對於我來說,這麼多數據,我用不到,而且價格有點貴。沒錢,放棄。
  • 不用Python,Excel輕鬆抓取豆瓣TOP250
    之前寫了篇Python批量爬取網頁數據的文章,後來發現Excel隨著版本的迭代,已經完全支持多頁面抓取數據了,不用擼代碼,點點滑鼠就能抓取數據,讓我們一起看看吧~ 網頁解析 在抓取數據之前,先對網頁進行一下解析,下圖中是豆瓣TOP250初始頁面,拉到最底部可以發現一共有
  • VBA也能來爬蟲(抓取糗百糗圖)
    通過xmlhttp對象循環得到每一頁的網頁代碼,通過正則表達式,在網頁代碼中找到圖片的真實網頁地址,然後依次打開網址,把圖片保存到本地。理論回頭學會了我再慢慢分享,現在我也屬於比葫蘆壺瓢階段,畢竟,興趣是最好的老師。
  • 簡易數據分析 04|Web Scraper 初嘗:抓取豆瓣高分電影
    顧名思義,創建一個選擇器,用來選擇我們想要抓取的元素。這時候就要開始正式的數據抓取環節了!3.我們把多選按鈕 Multiple 勾選上,因為我們要抓的是批量的數據,不勾選的話只能抓取一個;4.最後我們點擊黃色圓圈裡的 Select,開始在網頁上勾選電影名字;當你把滑鼠移動到網頁時,會發現網頁上出現了綠色的方塊兒,這些方塊就是網頁的構成元素。
  • 「爬蟲四步走」手把手教你使用Python抓取並存儲網頁數據!
    爬蟲是Python的一個重要的應用,使用Python爬蟲我們可以輕鬆的從網際網路中抓取我們想要的數據,本文將基於爬取B站視頻熱搜榜單數據並存儲為例,詳細介紹Python爬蟲的基本流程。如果你還在入門爬蟲階段或者不清楚爬蟲的具體工作流程,那麼應該仔細閱讀本文!
  • 你會用函數實現網頁數據抓取嗎?
    話說隨著網際網路的高速發展,網頁數據愈發成為數據分析過程中最重要的數據來源之一