Back to Insights生產力與科技工具

如何在5分鐘內使用Python進行網頁爬蟲

Mercury Technology Solutions2020年3月20日3 min read

簡而言之:網頁爬蟲自動化了從網站提取數據的過程,節省了時間和精力。本指南將帶你通過使用Python從紐約MTA下載多個檔案,強調法律考量的重要性,並提供逐步的程式碼範例。

精通網頁爬蟲:自動化你的數據提取

網頁爬蟲是一種強大的技術,用於自動訪問和提取大量信息。它可以顯著減少收集數據所需的時間和精力,將繁瑣的手動任務轉變為高效的自動化過程。

在本指南中,我將帶你通過一個實用的應用:從紐約MTA網站下載數百個檔案。這個範例非常適合渴望探索網頁爬蟲世界的初學者。

理解網頁爬蟲

在深入程式碼之前,了解網頁爬蟲的倫理和法律考量至關重要。始終閱讀網站的條款和條件,以確保你對數據的預期使用是合規的。許多網站禁止將其數據用於商業目的。此外,避免過快地下載數據,因為這可能會使伺服器過載並導致被封鎖。

檢查網站以尋找數據

網頁爬蟲的第一步是定位你想要從網站的HTML中提取的數據。對於我們的範例,我們將從MTA的網站抓取閘機數據,該網站自2010年5月以來每週編輯數據並以.txt檔案的形式提供。要找到相關的HTML元素:右鍵單擊網頁並選擇「檢查」以查看網站的代碼。

使用檢查工具突出顯示一個元素並找到其相應的HTML標籤。在我們的案例中,目標數據檔案位於<a>標籤中,這通常用於超連結。

  1. 使用Python編碼
  2. 讓我們開始使用Python進行網頁爬蟲所需的程式碼。我們將使用像requests、urllib和BeautifulSoup這樣的庫來自動化下載過程。步驟1:導入庫import requests

import urllib.request

import timefrom bs4 import BeautifulSoup步驟2:訪問網站設置URL並發送請求以訪問網站內容。url = 'http://web.mta.info/developers/turnstile.html'response = requests.get(url)步驟3:解析HTML

使用BeautifulSoup解析HTML並創建可導航的結構。

soup = BeautifulSoup(response.text, "html.parser")步驟4:定位鏈接找到所有<a>標籤,我們的檔案鏈接位於其中,從第38行開始。soup.findAll('a')

one_a_tag = soup.findAll('a')[38]

link = one_a_tag['href']

步驟5:下載檔案構建檔案的完整URL並使用

Step 3: Parse the HTML

Use BeautifulSoup to parse the HTML and create a navigable structure.

soup = BeautifulSoup(response.text, "html.parser")

Step 4: Locate the Links

Find all <a> tags, where our file links are located, starting from the 38th line.

soup.findAll('a')one_a_tag = soup.findAll('a')[38]link = one_a_tag['href']

Step 5: Download the Files

Construct the full URL for the file and download it using urllib.

download_url = 'http://web.mta.info/developers/' + linkurllib.request.urlretrieve(download_url, './' + link[link.find('/turnstile_')+1:])

步驟 6:使用迴圈自動化

用迴圈取代手動下載,以自動化所有檔案的過程。

透過這些步驟,您已經在自動化透過網頁擷取的資料下載過程上邁出了重要的一步。這項技術不僅優化了效率,還為資料驅動的決策開啟了新的途徑。

祝大家網頁擷取愉快!

Originally published on MTS Blog & Research