網頁內部以表格格式顯示了很多數據。但是,當您嘗試將數據存儲到本地計算機以供以後訪問時,可能會非常困難。問題在於,數據嵌入在HTML內,而HTML無法以CSV等結構化格式下載。Web抓取是將數據獲取到本地計算機的最簡單方法。
來自Unicorn Startup的表格數據
我想向幾乎對編碼一無所知的人介紹3種從表中抓取數據的方法:
##Google表格##
在Google表格中,有一個很棒的功能,稱為Import Html,它可以使用修復表達式= ImportHtml(URL,“ table”,num)從HTML頁面中的表格中抓取數據。
步驟1: 打開一個新的谷歌薄板和輸入t ħ Ë表達成一個空白。
將顯示該公式的簡要介紹。
步驟2: 輸入URL(例如:https : //en.wikipedia.org/wiki/Forbes%27_list_of_the_world%27s_highest-paid_athletes),並根據需要調整索引字段。
通過上述兩個步驟,我們可以在幾分鐘之內將表格抓取到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”
現在,我們可以看到在工作流框中創建了一個分頁循環。
第4步: 點擊以下內容以刮擦表格。
a)單擊表第一行中的第一個單元格
b)單擊“操作提示”面板中的展開圖標,直到整行以綠色突出顯示(通常,標記應為TR)
c)單擊“操作提示”面板中的“選擇所有子元素”,然後單擊“提取數據”和“提取循環中的數據”
在工作流中構建了用於採集表格的循環。
步驟5:提取數據
通過以上5個步驟,我們可以獲得以下結果。
由於增加了分頁功能,整個刮削過程變得更加複雜。但是,我們必須承認,Octoparse在處理批量抓取數據方面更好。
最令人驚奇的是,我們不需要了解任何編碼。就是說,無論我們是不是程序員,我們都可以創建自己的“抓取工具”,以自行獲取所需的數據。要進一步了解表格或表格中的抓取數據,請參閱 我可以提取表格/表格嗎?
但是,如果您碰巧了解一些編碼知識,並且想自己編寫腳本,那麼使用R語言的rvest包是幫助您抓取表格的最簡單方法。
##R語言(使用rvest軟件包)##
在這種情況下,我還使用該網站https://www.babynameguide.com/categoryafrican.asp?strCat=African 作為示例來演示如何使用rvest刮取表。
在開始編寫代碼之前,我們需要了解有關rvest軟件包的一些基本語法。
除上述內容外,還有一些用於模擬人的瀏覽行為的功能。例如,html_session(),jump_to(),follow_link(),back(),forward(),submit_form()等。
在這種情況下,我們需要使用html_table()來實現我們的目標,即從表中抓取數據。
首先下載R(https://cran.r-project.org/ )。
**步驟1:**安裝rvest。
**步驟2:**開始編寫代碼,如下圖所示。
Library(rvest):導入rvest包
Library(magrittr):導入magrittr包
URL:目標URL
閱讀HTML:從目標URL訪問信息
列表:從表中讀取數據
**步驟3:**在將所有代碼寫入R pen中後,單擊“ Enter”運行腳本。現在我們可以立即獲得表信息。
與使用幾行代碼提取表數據相比,使用網絡抓取工具似乎不需要花費更多的精力。實際上,編程確實具有陡峭的學習曲線,這提高了人們進入Web抓取技術真正能力的門檻。這種情況使不在技術行業工作的人更難以在利用Web數據方面獲得競爭優勢。
我希望以上教程可以幫助您大致了解Web抓取工具如何幫助您獲得與程序員輕鬆實現的相同結果。