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

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 安裝這些:

pip install requests beautifulsoup4 pandas

二.製作你的爬蟲

2.1 發送 HTTP 請求

使用requests庫取得網頁內容:

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}')

2.2 解析 HTML

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

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())

2.3 繞過反爬蟲措施

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

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

使用 98IP 代理(範例):

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

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)

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

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

三.資料儲存與處理

3.1 資料持久化

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

pip install requests beautifulsoup4 pandas

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

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
列表和陣列之間的選擇如何影響涉及大型數據集的Python應用程序的整體性能?列表和陣列之間的選擇如何影響涉及大型數據集的Python應用程序的整體性能?May 03, 2025 am 12:11 AM

ForhandlinglargedatasetsinPython,useNumPyarraysforbetterperformance.1)NumPyarraysarememory-efficientandfasterfornumericaloperations.2)Avoidunnecessarytypeconversions.3)Leveragevectorizationforreducedtimecomplexity.4)Managememoryusagewithefficientdata

說明如何將內存分配給Python中的列表與數組。說明如何將內存分配給Python中的列表與數組。May 03, 2025 am 12:10 AM

Inpython,ListSusedynamicMemoryAllocationWithOver-Asalose,而alenumpyArraySallaySallocateFixedMemory.1)listssallocatemoremoremoremorythanneededinentientary上,respizeTized.2)numpyarsallaysallaysallocateAllocateAllocateAlcocateExactMemoryForements,OfferingPrediCtableSageButlessemageButlesseflextlessibility。

您如何在Python數組中指定元素的數據類型?您如何在Python數組中指定元素的數據類型?May 03, 2025 am 12:06 AM

Inpython,YouCansspecthedatatAtatatPeyFelemereModeRernSpant.1)Usenpynernrump.1)Usenpynyp.dloatp.dloatp.ploatm64,formor professisconsiscontrolatatypes。

什麼是Numpy,為什麼對於Python中的數值計算很重要?什麼是Numpy,為什麼對於Python中的數值計算很重要?May 03, 2025 am 12:03 AM

NumPyisessentialfornumericalcomputinginPythonduetoitsspeed,memoryefficiency,andcomprehensivemathematicalfunctions.1)It'sfastbecauseitperformsoperationsinC.2)NumPyarraysaremorememory-efficientthanPythonlists.3)Itoffersawiderangeofmathematicaloperation

討論'連續內存分配”的概念及其對數組的重要性。討論'連續內存分配”的概念及其對數組的重要性。May 03, 2025 am 12:01 AM

Contiguousmemoryallocationiscrucialforarraysbecauseitallowsforefficientandfastelementaccess.1)Itenablesconstanttimeaccess,O(1),duetodirectaddresscalculation.2)Itimprovescacheefficiencybyallowingmultipleelementfetchespercacheline.3)Itsimplifiesmemorym

您如何切成python列表?您如何切成python列表?May 02, 2025 am 12:14 AM

SlicingaPythonlistisdoneusingthesyntaxlist[start:stop:step].Here'showitworks:1)Startistheindexofthefirstelementtoinclude.2)Stopistheindexofthefirstelementtoexclude.3)Stepistheincrementbetweenelements.It'susefulforextractingportionsoflistsandcanuseneg

在Numpy陣列上可以執行哪些常見操作?在Numpy陣列上可以執行哪些常見操作?May 02, 2025 am 12:09 AM

numpyallowsforvariousoperationsonArrays:1)basicarithmeticlikeaddition,減法,乘法和division; 2)evationAperationssuchasmatrixmultiplication; 3)element-wiseOperations wiseOperationswithOutexpliitloops; 4)

Python的數據分析中如何使用陣列?Python的數據分析中如何使用陣列?May 02, 2025 am 12:09 AM

Arresinpython,尤其是Throughnumpyandpandas,weessentialFordataAnalysis,offeringSpeedAndeffied.1)NumpyArseNable efflaysenable efficefliceHandlingAtaSetSetSetSetSetSetSetSetSetSetSetsetSetSetSetSetsopplexoperationslikemovingaverages.2)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。