iT邦幫忙

0

3種方法採集表格數據

網頁內部以表格格式顯示了很多數據。但是,當您嘗試將數據存儲到本地計算機以供以後訪問時,可能會非常困難。問題在於,數據嵌入在HTML內,而HTML無法以CSV等結構化格式下載。Web抓取是將數據獲取到本地計算機的最簡單方法。

從table抓取數據_Octoparse
來自Unicorn Startup的表格數據

我想向幾乎對編碼一無所知的人介紹3種從表中抓取數據的方法:

  • Google表格
  • Octoparse(網頁抓取工具)
  • R語言(使用rvest軟件包)

##Google表格##
在Google表格中,有一個很棒的功能,稱為Import Html,它可以使用修復表達式= ImportHtml(URL,“ table”,num)從HTML頁面中的表格中抓取數據。

步驟1: 打開一個新的谷歌薄板和輸入t ħ Ë表達成一個空白。

將顯示該公式的簡要介紹。

Googlr sheet_importHTML

步驟2: 輸入URL(例如:https : //en.wikipedia.org/wiki/Forbes%27_list_of_the_world%27s_highest-paid_athletes),並根據需要調整索引字段。

Google Sheet_Scrape表

通過上述兩個步驟,我們可以在幾分鐘之內將表格抓取到Google工作表中。顯然,Google表格是幫助我們直接將表格抓取到Google表格的一種好方法。但是,存在明顯的局限性。如果我們計劃使用Google表格跨多個頁面抓取表格,那麼這將是一項平凡的任務。 因此,您需要一種更有效的方法來自動化該過程。

使用網頁抓取工具抓取表格
為了更好地說明我的觀點,我將使用此網站向您展示抓取過程,https: //www.babynameguide.com/categoryafrican.asp?strCat=African 為了更好地說明我的觀點,我將使用此網站向您展示抓取過程,

首先,下載並啟動Octoparse。

步驟1: 單擊Advanced Mode(高級模式)開始一個新項目。

八度解析高級模式

第2步:在框中輸入目標URL,然後單擊“保存URL”以在Octoparse內置瀏覽器中打開網站。

 輸入網址

步驟3:通過3次點擊創建分頁:

a)在瀏覽器中單擊“ B”

b)在“操作提示”面板中單擊“全選”

c)在“操作提示”面板中單擊“循環單擊每個URL”

Octoparse_Pagination 1
Octoparse_Pagination 2

現在,我們可以看到在工作流框中創建了一個分頁循環。

 Octoparse_Pagination 3

第4步: 點擊以下內容以刮擦表格。

a)單擊表第一行中的第一個單元格

b)單擊“操作提示”面板中的展開圖標,直到整行以綠色突出顯示(通常,標記應為TR)

c)單擊“操作提示”面板中的“選擇所有子元素”,然後單擊“提取數據”和“提取循環中的數據”

Octoaprse採集表格1
Octoaprse採集表格3
Octoaprse採集表格2
Octoaprse採集表格4

在工作流中構建了用於採集表格的循環。

Octoaprse採集表格5

步驟5:提取數據

提取數據

通過以上5個步驟,我們可以獲得以下結果。

由於增加了分頁功能,整個刮削過程變得更加複雜。但是,我們必須承認,Octoparse在處理批量抓取數據方面更好。

最令人驚奇的是,我們不需要了解任何編碼。就是說,無論我們是不是程序員,我們都可以創建自己的“抓取工具”,以自行獲取所需的數據。要進一步了解表格或表格中的抓取數據,請參閱 我可以提取表格/表格嗎

但是,如果您碰巧了解一些編碼知識,並且想自己編寫腳本,那麼使用R語言的rvest包是幫助您抓取表格的最簡單方法。

##R語言(使用rvest軟件包)##
在這種情況下,我還使用該網站https://www.babynameguide.com/categoryafrican.asp?strCat=African 作為示例來演示如何使用rvest刮取表。

在開始編寫代碼之前,我們需要了解有關rvest軟件包的一些基本語法。

  • html_nodes():在特定文檔中選擇特定部分。我們可以選擇使用CSS選擇器,例如html_nodes(doc,“ table td”)或xpath選擇器,html_nodes(doc,xpath =“ // table // td”)
  • html_tag():提取標籤名稱。一些類似的是html_text(),html_attr()和html_attrs()
  • html_table():解析HTML表並將其提取到R Framework。

除上述內容外,還有一些用於模擬人的瀏覽行為的功能。例如,html_session(),jump_to(),follow_link(),back(),forward(),submit_form()等。

在這種情況下,我們需要使用html_table()來實現我們的目標,即從表中抓取數據。

首先下載R(https://cran.r-project.org/ )。

**步驟1:**安裝rvest。

安裝rvest

**步驟2:**開始編寫代碼,如下圖所示。

Library(rvest):導入rvest包
Library(magrittr):導入magrittr包
URL:目標URL
閱讀HTML:從目標URL訪問信息
列表:從表中讀取數據

**步驟3:**在將所有代碼寫入R pen中後,單擊“ Enter”運行腳本。現在我們可以立即獲得表信息。

rvest_final結果

與使用幾行代碼提取表數據相比,使用網絡抓取工具似乎不需要花費更多的精力。實際上,編程確實具有陡峭的學習曲線,這提高了人們進入Web抓取技術真正能力的門檻。這種情況使不在技術行業工作的人更難以在利用Web數據方面獲得競爭優勢。

我希望以上教程可以幫助您大致了解Web抓取工具如何幫助您獲得與程序員輕鬆實現的相同結果。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言