首頁>Club>
4
回覆列表
  • 1 # 52sissi

      網際網路已經成熟,可以用於自己的個人專案的資料集。有時,您很幸運,並且可以訪問一個API,您可以在其中直接使用大資料分析R語言來請求資料。有時,您不會很幸運,也無法從整齊的格式。發生這種情況時,我們需要轉向網頁抓取,即一種透過在網站的HTML程式碼中找到想要的資料來獲取要分析的資料的技術。

      在本教程中,我們將介紹如何在大資料分析R語言中進行網路抓取的基礎知識。我們將從國家氣象局網站上的天氣預報中抓取資料並將其轉換為可用格式。

      當我們找不到所需的資料時,Web抓取將提供機會,併為我們提供實際建立資料集所需的工具。而且由於我們使用大資料分析R語言進行網頁抓取,因此如果我們使用的網站已更新,我們可以再次簡單地再次執行程式碼以獲取更新的資料集。

      瞭解網頁

      在開始學習如何抓取網頁之前,我們需要了解網頁本身的結構。

      從使用者的角度來看,網頁具有以美觀和易於閱讀的方式組織的文字,影象和連結。但是網頁本身是用特定的編碼語言編寫的,然後由我們的網路瀏覽器解釋。在進行網頁抓取時,我們需要處理網頁本身的實際內容:瀏覽器解釋之前的程式碼。

      用於構建網頁的主要語言稱為超文字標記語言(HTML),級聯樣式表(CSS)和Javasc大資料分析R語言ipt。HTML為網頁提供了其實際結構和內容。CSS為網頁提供了樣式和外觀,包括字型和顏色等詳細資訊。Javasc大資料分析R語言ipt提供了網頁功能。

      在本教程中,我們將主要集中於如何使用大資料分析R語言 Web抓取來讀取構成網頁的HTML和CSS。

      HTML

      與大資料分析R語言不同,HTML不是程式語言。相反,它稱為標記語言 -它描述網頁的內容和結構。HTML是使用標記來組織的 ,這些標記被<>符號包圍。不同的標籤執行不同的功能。許多標籤將一起形成幷包含網頁的內容。

      最簡單的HTML文件如下所示:

      儘管以上是合法的HTML文件,但它沒有文字或其他內容。如果將其另存為.html檔案並使用網路瀏覽器開啟它,則會看到空白頁。

      請注意,該單詞html被<>方括號括起來,表示它是一個標記。要向此HTML文件新增更多結構和文字,我們可以新增以下內容:

      在這裡,我們添加了和標記,它們為文件添加了更多結構。

      標籤是我們在HTML中用來指定段落文字的標籤。

      HTML中有很多標籤,但是在本教程中我們將無法涵蓋所有標籤。如果有興趣,您可以檢視此站點。最重要的外賣是知道標籤有特定的名稱(html,body,p等),使它們在HTML文件中識別。

      請注意,每個標籤都是“配對”的,意思是每個標籤都伴隨著另一個名稱相似的標籤。也就是說,開始標記與另一個標記配對,該標記指示HTML文件的開始和結束。和和相同。

      認識到這一點很重要,因為它允許標籤彼此巢狀。在和標籤巢狀,並巢狀在。這種巢狀使HTML具有“樹狀”的結構:

      當使用大資料分析R語言進行網頁抓取時,這種類似樹的結構將告知我們如何查詢某些標籤,因此務必牢記這一點。如果某個標籤中嵌套了其他標籤,則將包含標籤稱為父標籤,將其中的每個標籤稱為“子級”。如果父母中有多個孩子,則這些孩子標籤統稱為“兄弟姐妹”。父母,子女和兄弟姐妹的這些概念使我們對標籤的層次結構有了一個瞭解。

      CSS

      HTML提供了網頁的內容和結構,而CSS提供了有關網頁樣式的資訊。沒有CSS,網頁將變得非常簡陋。這是一個沒有CSS的簡單HTML文件,對此進行了演示。

      我們兩個概念都需要學習之前,我們深入到大資料分析R語言的網路刮程式碼的類和IDS。

      首先,讓我們談談類。如果我們要建立一個網站,那麼通常我們會希望網站的相似元素看起來相同。例如,我們可能希望列表中的許多專案都以相同的顏色顯示為紅色。

      我們可以透過在文字的HTML標籤的每一行中直接插入一些包含顏色資訊的CSS來實現,例如:

      該style文指出,我們正在嘗試應用CSS的標籤。在引號內,我們看到一個鍵值對“ colo大資料分析R語言:大資料分析R語言ed”。colo大資料分析R語言指標記中文字的顏色,而紅色表示應為顏色。

      但是正如我們在上面看到的,我們已經多次重複了這個鍵值對。這不是理想的-如果我們想更改文字的顏色,則必須逐行更改每一行。

      不用style在所有這些標籤中重複此文字,我們可以將其替換為class選擇器:

      的class選擇,我們可以更好地表明,這些標籤被以某種方式有關。在一個單獨的CSS檔案中,我們可以透過編寫以下內容來建立紅色文字類並定義其外觀:

      將這兩個元素組合到一個網頁中將產生與第一組紅色標記相同的效果,但是它使我們能夠更輕鬆地進行快速更改。

      當然,在本教程中,我們對網頁抓取感興趣,而不是構建網頁。但是,當我們進行網路抓取時,通常需要選擇特定類別的HTML標籤,因此我們需要了解CSS類的工作原理。

      同樣,我們可能經常想抓取使用id標識的特定資料。CSS ID用於為單個元素賦予可識別的名稱,就像類如何幫助定義元素類一樣。

      如果將id附加到HTML標記,則在使用大資料分析R語言執行實際的網頁抓取時,我們可以更輕鬆地識別該標記。

      如果您還不太瞭解類和id,請不要擔心,當我們開始處理程式碼時,它將變得更加清晰。

      有幾個大資料分析R語言庫旨在採用HTML和CSS,並能夠遍歷它們以查詢特定標籤。我們將在本教程中使用的庫是大資料分析R語言vest。

      大資料分析R語言vest庫

      該大資料分析R語言vest庫由傳奇人物哈德利·威克漢姆(Hadley Wickham)維護,該庫使使用者可以輕鬆地從網頁上抓取(“收穫”)資料。

      大資料分析R語言vest是其中一個tidyve大資料分析R語言se庫,因此可以與捆綁軟體中包含的其他庫一起很好地工作。大資料分析R語言vest從來自Python的網路抓取庫BeautifulSoup中獲取靈感。(相關:o您的BeautifulSoup Python教程。)

      在大資料分析R語言中抓取網頁

      為了使用該大資料分析R語言vest庫,我們首先需要安裝它,並使用lib大資料分析R語言a大資料分析R語言y()函式將其匯入。

      為了開始透過網頁進行解析,我們首先需要從包含該網頁的計算機伺服器中請求該資料。為了復興,服務於此目的的大資料分析R語言ead_html()功能就是功能。

      大資料分析R語言ead_html()接受Web U大資料分析R語言L作為引數。讓我們從前面的簡單的無CSS頁面開始,以瞭解該函式的工作原理。

      simple <- 大資料分析R語言ead_html("http://dataquestio.github.io/web-sc大資料分析R語言aping-pages/simple.html")

      假設我們想將單個標籤中包含的文字儲存到變數中。為了訪問此文字,我們需要弄清楚如何定位此特定文字。這通常是CSS類和ID可以為我們提供幫助的地方,因為優秀的開發人員通常會將CSS高度明確地放在其網站上。

      在這種情況下,我們沒有這樣的CSS,但是我們知道要訪問的標記是頁面上唯一的標記。為了捕獲文字,我們需要分別使用html_nodes()和html_text()函式來搜尋該

      標籤並檢索文字。下面的程式碼執行此操作:

      該simple變數已經包含了我們要抓取的HTML,因此剩下的任務就是從中搜索所需的元素。由於我們正在使用tidyve大資料分析R語言se,我們可以將HTML傳遞到不同的函式中。

      我們需要將特定的HTML標記或CSS類傳遞到html_nodes()函式中。我們需要標記,因此我們將字元“ p”傳遞給函式。html_nodes()還返回一個列表,但是它返回HTML中具有給定的特定HTML標記或CSS類/標識的所有節點。甲節點指的是在樹狀結構的一個點。

      一旦擁有所有這些節點,就可以將輸出傳遞html_nodes()到html_text()函式中。我們需要獲取標籤的實際文字,因此此功能可以幫助您解決此問題。

      這些功能共同構成了許多常見的Web抓取任務。通常,使用大資料分析R語言(或任何其他語言)的Web抓取可歸結為以下三個步驟:

      a.獲取您要抓取的網頁的HTML

      b.確定要閱讀頁面的哪一部分,並找出需要選擇的HTML / CSS

      c.選擇HTML並根據需要進行分析

      目標網頁

      對於本教程,我們將檢視國家氣象局的網站。假設我們對建立自己的天氣應用感興趣。我們需要氣象資料本身來填充它。

      天氣資料每天都會更新,因此我們將在需要時使用網路抓取從NWS網站獲取此資料。

      就我們的目的而言,我們將從舊金山獲取資料,但是每個城市的網頁看起來都是相同的,因此對任何其他城市也可以使用相同的步驟。舊金山頁面的螢幕截圖如下所示:

      我們對每天的天氣預報和溫度特別感興趣。每天都有白天天氣預報和夜晚天氣預報。現在,我們已經確定了所需的網頁部分,我們可以瀏覽HTML以檢視需要選擇哪些標籤或類來捕獲此特定資料。

      使用Ch大資料分析R語言ome Devtools

      值得慶幸的是,大多數現代瀏覽器都有一個工具,允許使用者直接檢查任何網頁的HTML和CSS。在Google Ch大資料分析R語言ome和Fi大資料分析R語言efox中,它們被稱為開發人員工具,在其他瀏覽器中具有相似的名稱。對我們而言最有用的特定工具是Inspecto大資料分析R語言。

      您可以透過在瀏覽器的右上角找到開發人員工具。如果您使用的是Fi大資料分析R語言efox,則應該可以看到開發人員工具;如果您使用的是Ch大資料分析R語言ome,則可以瀏覽View -> Mo大資料分析R語言e Tools -> Develope大資料分析R語言 Tools。這將在您的瀏覽器視窗中開啟開發人員工具:

      我們之前處理的HTML只是一個基本的知識,但是您將在瀏覽器中看到的大多數網頁都極其複雜。如何使用大資料分析R語言rvest中進行網頁抓取https://www.aaa-cg.com.cn/data/2305.html開發人員工具將使我們更容易選擇要抓取並檢查HTML的網頁的確切元素。

      我們需要檢視天氣頁面的HTML中的溫度,因此我們將使用“檢查”工具檢視這些元素。Inspect工具將挑選出我們要查詢的確切HTML,因此我們不必自己看!

      透過單擊元素本身,我們可以看到以下HTML中包含了為期7天的預測。我們壓縮了其中的一些以使其更具可讀性:

      使用我們所學到的

      現在,我們已經確定了需要在網頁中定位的特定HTML和CSS,可以大資料分析R語言vest用來捕獲它了。

      從上面的HTML中,似乎每個溫度都包含在class中temp。一旦擁有所有這些標籤,就可以從中提取文字。

      使用此程式碼,fo大資料分析R語言ecasts現在是對應於低溫和高溫的字串向量。

      現在我們有了對大資料分析R語言變數感興趣的實際資料,我們只需要進行一些常規資料分析就可以將向量轉換為所需的格式。例如:

      下一步

      該大資料分析R語言vest庫使使用與tidyve大資料分析R語言se庫相同的技術可以輕鬆便捷地執行Web抓取。

    https://www.toutiao.com/i6831048759263101448/

  • 2 # 朕原諒你了

    用博為小幫軟體機器人,可以配置很多辦公輔助工具,簡單容易操作。

    比如財務一鍵報稅,自動賬務處理;人事考勤資料助理;電商批次上架,價格監測等。

  • 中秋節和大豐收的關聯?
  • 哪本書曾經影響過你的價值觀?