在Python中抓取Web資料通常涉及向目標網站發送HTTP請求並解析傳回的HTML或JSON資料。 下面是一個簡單的網頁抓取應用程式的範例,它使用 requests 庫發送 HTTP 請求並使用 BeautifulSouplibrary 解析 HTML。
首先,請確保您已經安裝了 requests 和 beautifulsoup4 庫。如果沒有,您可以使用以下命令安裝它們:
pip 安裝請求 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和連接埠替換為實際的代理伺服器位址。另外,請確保代理伺服器可靠並支援您要抓取的網站。某些網站可能會偵測並封鎖來自已知代理伺服器的請求,因此您可能需要定期變更代理伺服器或使用更進階的代理服務。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3