在 Python 中抓取 Web 資料通常涉及向目標網站發送 HTTP 請求並解析傳回的 HTML 或 JSON 資料。 下面是一個簡單的網頁抓取應用程式的範例,它使用 requests 庫發送 HTTP 請求並使用 BeautifulSouplibrary 解析 HTML。
首先,請確保您已經安裝了 requests 和 beautifulsoup4 庫。如果沒有,您可以使用以下命令安裝它們:
pip install 請求 beautifulsoup4
然後,您可以編寫以下 Python 腳本來抓取網頁資料:
import requests from bs4 import BeautifulSoup # URL of the target website url = 'http://example.com' # Sending HTTP GET request response = requests.get(url) # Check if the request was successful if response.status_code == 200: # Parsing HTML with BeautifulSoup soup = BeautifulSoup(response.text, 'html.parser') # Extract the required data, for example, extract all the titles titles = soup.find_all('h1') # Print title for title in titles: print(title.text) else: print('Request failed,status code:', response.status_code)
在這個範例中,我們先匯入 requests 和 BeautifulSouplibraries。然後,我們定義目標網站的 URL 並使用 requests.get() 方法傳送 HTTP GET 請求。如果請求成功(狀態代碼為 200),我們使用 BeautifulSoup 解析傳回的 HTML 並提取所有
請注意,在實際的網頁抓取專案中,您需要遵守目標網站的robots.txt檔案規則,並尊重網站的版權和使用條款。另外,有些網站可能會使用反爬蟲技術,例如動態載入內容、驗證碼等,這可能需要更複雜的處理策略。
使用代理爬取網站是規避IP限制和反爬蟲機制的常用方法。代理伺服器可以充當中介,將您的請求轉發到目標網站並將回應傳回給您,這樣目標網站只能看到代理伺服器的IP位址,而不是您的真實IP位址。
在Python中,您可以使用requests函式庫來設定代理程式。以下是一個簡單的範例,展示如何使用代理程式發送 HTTP 請求:
import requests # The IP address and port provided by swiftproxy proxy = { 'http': 'http://45.58.136.104:14123', 'https': 'http://119.28.12.192:23529', } # URL of the target website url = 'http://example.com' # Sending requests using a proxy response = requests.get(url, proxies=proxy) # Check if the request was successful if response.status_code == 200: print('Request successful, response content:', response.text) else: print('Request failed,status code:', response.status_code)
注意,需要將代理伺服器IP和連接埠替換為實際的代理伺服器位址。另外,請確保代理伺服器可靠並支援您要抓取的網站。有些網站可能會偵測並封鎖來自已知代理伺服器的請求,因此您可能需要定期更換代理伺服器或使用更高級的代理服務。
以上是建立簡單 Python 網頁抓取應用程式的指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!