Python 也能扮演瀏覽器,這就是爬蟲的基礎:
# pip install requests
import requests
response = requests.get("https://jiu-tao.com")
print(response.status_code) # 200 = 成功Python 也能扮演瀏覽器,這就是爬蟲的基礎:
# pip install requests
import requests
response = requests.get("https://jiu-tao.com")
print(response.status_code) # 200 = 成功# GET 請求
r = requests.get("https://api.example.com/data")
print(r.json())
# 帶參數
r = requests.get("https://api.example.com/search",
params={"q": "Python", "page": 1})
# POST 請求
r = requests.post("https://api.example.com/login",
json={"username": "ding"})
# 錯誤處理
try:
r = requests.get("https://bad-site.com", timeout=5)
r.raise_for_status()
except requests.exceptions.Timeout:
print("請求超時")# pip install beautifulsoup4
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.text, "html.parser")
title = soup.find("title").text
all_links = soup.find_all("a")
for link in all_links[:5]:
print(link.get("href"), link.text)
# CSS 選擇器
articles = soup.select("article h2")
prices = soup.select(".price")import requests
def get_weather(city="臺北"):
url = "https://opendata.cwa.gov.tw/api/v1/rest/datastore/F-C0032-001"
params = {"Authorization": "YOUR_API_KEY", "locationName": city}
try:
r = requests.get(url, params=params, timeout=10)
r.raise_for_status()
data = r.json()
loc = data["records"]["location"][0]
print(f"🌤️ {loc['locationName']} 天氣:")
for wx in loc["weatherElement"]:
if wx["elementName"] == "Wx":
print(wx["time"][0]["parameter"]["parameterName"])
except Exception as e:
print(f"查詢失敗: {e}")