首頁 > 後端開發 > Python教學 > 使用Python建立網路爬蟲:從網頁中提取數據

使用Python建立網路爬蟲:從網頁中提取數據

Patricia Arquette
發布: 2025-01-21 10:10:09
原創
616 人瀏覽過

Building a Web Crawler with Python: Extracting Data from Web Pages

網路蜘蛛或網路爬蟲是一種自動化程序,旨在導航互聯網,從網頁收集和提取指定資料。 Python 以其清晰的語法、廣泛的程式庫和活躍的社群而聞名,已成為建立這些爬蟲的首選語言。本教學提供了創建用於資料擷取的基本 Python 網路爬蟲的逐步指南,包括克服反爬蟲措施的策略,並使用 98IP 代理程式作為潛在的解決方案。

我。設定您的環境

1.1 安裝Python

確保您的系統上安裝了 Python。推薦使用 Python 3,因為它具有卓越的效能和更廣泛的程式庫支援。從Python官方網站下載合適的版本。

1.2 安裝必要的庫

建構網路爬蟲通常需要這些 Python 函式庫:

  • requests:用於傳送 HTTP 請求。
  • BeautifulSoup:用於解析 HTML 並擷取資料。
  • pandas:用於資料操作和儲存(可選)。
  • 標準庫,如timerandom:用於管理延遲和隨機化請求以避免被反爬蟲機制檢測。

使用 pip 安裝這些:

<code class="language-bash">pip install requests beautifulsoup4 pandas</code>
登入後複製
登入後複製

二.製作你的爬蟲

2.1 發送 HTTP 請求

使用requests庫取得網頁內容:

<code class="language-python">import requests

url = 'http://example.com'  # Replace with your target URL
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}  # Mimics a browser
response = requests.get(url, headers=headers)

if response.status_code == 200:
    page_content = response.text
else:
    print(f'Request failed: {response.status_code}')</code>
登入後複製

2.2 解析 HTML

使用BeautifulSoup解析HTML並擷取資料:

<code class="language-python">from bs4 import BeautifulSoup

soup = BeautifulSoup(page_content, 'html.parser')

# Example: Extract text from all <h1> tags.
titles = soup.find_all('h1')
for title in titles:
    print(title.get_text())</code>
登入後複製

2.3 繞過反爬蟲措施

網站採用 IP 攔截和驗證碼等反爬蟲技術。為了規避這些:

  • 設定請求標頭:透過設定 User-AgentAccept 等標頭來模仿瀏覽器行為,如上所示。
  • 利用代理 IP:使用代理伺服器封鎖您的 IP 位址。 98IP Proxy 等服務提供大量代理 IP 來幫助避免 IP 封鎖。

使用 98IP 代理(範例):

從 98IP Proxy 取得代理 IP 和連接埠。 然後,將此資訊合併到您的 requests 呼叫中:

<code class="language-python">proxies = {
    'http': f'http://{proxy_ip}:{proxy_port}',  # Replace with your 98IP proxy details
    'https': f'https://{proxy_ip}:{proxy_port}',  # If HTTPS is supported
}

response = requests.get(url, headers=headers, proxies=proxies)</code>
登入後複製

注意:為了實現穩健的抓取,請從 98IP 檢索多個代理 IP 並輪換它們以防止單個 IP 被阻止。 實作錯誤處理來管理代理故障。

  • 引入延遲:在請求之間添加隨機延遲以模擬人類瀏覽。
  • 驗證碼處理:對於驗證碼,請探索 OCR(光學字元辨識)或第三方驗證碼解決服務。 請留意網站服務條款。

三.資料儲存與處理

3.1 資料持久化

將擷取的資料儲存在檔案、資料庫或雲端儲存中。 以下是保存到 CSV 的方法:

<code class="language-bash">pip install requests beautifulsoup4 pandas</code>
登入後複製
登入後複製

以上是使用Python建立網路爬蟲:從網頁中提取數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板