什麼是刮網?如何從網站收集資料

你有沒有發現自己在浪費寶貴的時間閱讀網頁上的資料?以下是如何透過網頁抓取找到所需的資料。...

Web scraper自動收集通常只能通過瀏覽器訪問網站才能訪問的信息和數據。通過自主地這樣做,web抓取腳本在數據挖掘、數據分析、統計分析等方面打開了一個可能性的世界。

web-scraping

為什麼刮網有用

我們生活在一個比任何時候都更容易獲得信息的時代。用來傳遞你正在閱讀的這些單詞的基礎設施是一個通往更多知識、觀點和新聞的渠道,這是人類歷史上人們從未接觸過的。

事實上,即使最聰明的人的大腦被提高到100%的效率(應該有人為此**一部電影),光是在美國,仍然無法容納互聯網上存儲的1/1000的數據。

Cisco在2016年估計,互聯網流量超過了1個zettabyte,即1000000000000000000字節,或者1個sextillion字節(繼續,對著sextillion傻笑)。一個zettabyte是流媒體Netflix的四千年曆史。這就相當於,如果你,勇敢的讀者,從頭到尾不停地瀏覽辦公室50萬次。

Internet data visualization zettabyte exabyte petabyte terabyte gigabyte megabyte

所有這些數據和信息都非常嚇人。不是所有的都是對的。這些信息與日常生活的關係不大,但越來越多的設備將這些信息從世界各地的服務器傳送到我們的眼睛和大腦。

由於我們的眼睛和大腦不能真正處理所有這些信息,網絡抓取已經成為一種有用的方法,通過編程從互聯網收集數據。Web抓取是一個抽象的術語,它定義了從網站中提取數據以將其保存在本地的行為。

想想一種類型的數據,你也許可以通過抓取網頁來收集它。房地產清單、體育數據、你所在地區企業的電子郵件地址,甚至你最喜歡的藝術家的歌詞,都可以通過編寫一個小腳本來查找和保存。

瀏覽器如何獲取web數據?

要理解web scraper,我們首先需要了解web是如何工作的。要訪問此網站,請鍵入“makeuseof.com網站“或者您單擊了另一個網頁的鏈接(告訴我們在哪裡,說真的,我們想知道)。不管怎樣,接下來的幾個步驟都是一樣的。

首先,你的瀏覽器將獲取你輸入或點擊的網址(專業提示:在點擊之前,將鼠標懸停在鏈接上方,查看瀏覽器底部的網址,以避免受到朋克攻擊),並形成一個“請求”發送到服務器。然後服務器將處理請求併發送響應。

服務器的響應包含HTML、JavaScript、CSS、JSON和其他數據,這些數據允許您的web瀏覽器形成一個供您查看的網頁。

檢查web元素

現代瀏覽器允許我們瞭解這個過程的一些細節。在Windows上的googlechrome中,您可以按Ctrl+Shift+I或右鍵單擊並選擇Inspect。窗口將顯示如下屏幕。

Inspect web element using Google Chrome

選項的選項卡列表列在窗口的頂部。現在感興趣的是網絡標籤。這將提供有關HTTP流量的詳細信息,如下所示。

Inspect web request using Google Chrome

在右下角,我們看到了有關HTTP請求的信息。URL是我們所期望的,而“method”是一個HTTP“GET”請求。響應中的狀態代碼列為200,這意味著服務器認為請求有效。

在狀態碼下面是遠程地址,這是服務器的面向公眾的IP地址makeuseof.com網站服務器。客戶端通過DNS協議獲得這個地址。

下一節將列出有關響應的詳細信息。響應頭不僅包含狀態代碼,還包含響應包含的數據或內容的類型。在本例中,我們將使用標準編碼查看“text/html”。這告訴我們,響應實際上是呈現網站的HTML代碼。

Inspect web request resp***e html using Google Chrome

其他類型的響應

此外,服務器可以返回數據對象作為對GET請求的響應,而不是隻返回HTML供web頁面呈現。網站的應用程序編程接口(或API)通常使用這種類型的交換。

仔細閱讀如上所示的Network選項卡,您可以看到是否存在這種類型的交換。調查CrossFit開放式排行榜時,會顯示用數據填充表格的請求。

Inspect web request request data using Google Chrome

通過單擊響應,將顯示JSON數據,而不是呈現網站的HTML代碼。JSON中的數據是一系列標籤和值,它們位於一個分層的、輪廓分明的列表中。

Inspect web resp***e JSON using Google Chrome

手動解析HTML代碼或遍歷數以千計的JSON鍵/值對非常類似於讀取矩陣。乍一看,這看起來像胡言亂語。信息可能太多,無法手動解碼。

網絡搜尋者來營救!

現在,在你要求藍色藥丸離開這裡之前,你應該知道我們不必手動解碼HTML代碼!無知不是幸福,這牛排很好吃。

網絡刮板可以為您執行這些困難的任務。抓取框架有Python、JavaScript、Node和其他語言。一個最簡單的方法開始刮是使用蟒蛇和美麗的湯。

用python抓取網站

只要安裝了Python和BeautifulSoup,入門只需要幾行代碼。這裡有一個小腳本,以獲得一個網站的來源,讓BeautifulSoup評估它。

from bs4 import BeautifulSoupimport requestsurl = "http://www.athleticvolume.com/programming/"content = requests.get(url)soup = BeautifulSoup(content.text)print(soup)

非常簡單,我們向一個URL發出GET請求,然後將響應放入一個對象中。打印對象將顯示URL的HTML源代碼。這個過程就像我們手動訪問網站並單擊“查看源代碼”。

具體來說,這是一個網站,張貼交叉適合風格的鍛鍊每天,但只有一天。我們可以構建我們的scraper來獲取每天的訓練,然後將其添加到訓練的彙總列表中。基本上,我們可以創建一個基於文本的訓練歷史數據庫,以便輕鬆搜索。

BeaufiulSoup的神奇之處在於,它能夠使用內置的findAll()函數搜索所有HTML代碼。在這個特定的例子中,網站使用了幾個“sqs block content”標籤。因此,腳本需要遍歷所有這些標記並找到我們感興趣的標記。

此外,該節中還有許多標記。腳本可以將每個標記中的所有文本添加到局部變量中。為此,請向腳本中添加一個簡單的循環:

for div_class in soup.findAll('div', {'class': 'sqs-block-content'}): recordThis = False for p in div_class.findAll('p'): if 'PROGRAM' in p.text.upper(): recordThis = True if recordThis: program += p.text program += ''

瞧!刮網器誕生了。

擴大刮削

前進有兩條路。

探索web抓取的一種方法是使用已經構建的工具。網站刮刀(偉大的名字!)擁有200000用戶,使用簡單。此外,Parse Hub允許用戶將蒐集的數據導出到Excel和Google工作表中。

此外,webscraper還提供了一個Chrome插件,可以幫助可視化網站的構建過程。從名稱來看,最棒的是OctoParse,它是一個強大的刮刀,具有直觀的界面。

最後,既然你已經瞭解了網頁抓取的背景知識,提高你自己的小網頁抓取器,使其能夠自己爬行和運行是一個有趣的嘗試。

  • 發表於 2021-03-22 00:36
  • 閱讀 ( 47 )
  • 分類:程式設計

你可能感興趣的文章

如何禁止onenote貼上源連結

...有其他必須禁用或調整的功能?您最喜歡的OneNote功能是什麼?請在評論中告訴我們。 ...

  • 發佈於 2021-03-11 22:51
  • 閲讀 ( 33 )

如何使用chrome上的wayback機器檢視死url連結

...瀏覽。如果你認為這是一個有用的工作位,那麼你會喜歡什麼回程機鉻擴充套件可以做。 ...

  • 發佈於 2021-03-16 05:21
  • 閲讀 ( 39 )

如何刪除網上的虛假個人資訊

...需要學習如何從網上刪除資訊。跟著做,找出你需要做些什麼來行動。 ...

  • 發佈於 2021-03-18 03:59
  • 閲讀 ( 64 )

scrapestack api可以輕鬆地從網站中獲取資料

... 為什麼需要scrapeapi ...

  • 發佈於 2021-03-19 05:12
  • 閲讀 ( 35 )

使用非facebook活動工具停止被網上廣告跟蹤

... 什麼是離開facebook的活動工具(the off-facebook activity tool)? ...

  • 發佈於 2021-03-19 18:57
  • 閲讀 ( 48 )

如何找出任何一家大型科技公司對你的瞭解

... 無論您被迫做什麼,最終訪問資料通常意味著下載一個壓縮資料夾,其中包含一系列檔案,通常副檔名不同,如.csv或.json。 ...

  • 發佈於 2021-03-27 04:11
  • 閲讀 ( 44 )

什麼是谷歌分析,它是如何衡量的?

...他們網站的神祕虛擬訪客感到好奇。有多少人?他們在讀什麼?加拿大人使用Firefox每個會話檢視多少頁? ...

  • 發佈於 2021-03-28 03:01
  • 閲讀 ( 50 )

用這個漂亮的python教程瀏覽一個網站

...度的控制。在這篇文章中,我們來看看如何使用美麗的湯刮網站。 ...

  • 發佈於 2021-03-28 10:33
  • 閲讀 ( 61 )

最好的網上刮網工具

... 相關:什麼是網頁抓取?如何從網站收集資料 ...

  • 發佈於 2021-03-28 12:12
  • 閲讀 ( 59 )

獲取機器學習專案資料集的4種獨特方法

... 為什麼你的資料科學專案需要更多的資料 ...

  • 發佈於 2021-03-29 21:16
  • 閲讀 ( 54 )
ermao32
ermao32

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章