cookielib、opener、header 繁瑣易錯。import requests
from bs4 import BeautifulSoup
session = requests.Session()
session.headers.update({
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
})
# 1. 獲取登錄頁,解析 authenticity_token
login_page = session.get('https://twitter.com/login')
soup = BeautifulSoup(login_page.text, 'html.parser')
auth_token = soup.find('input', {'name': 'authenticity_token'})['value']
# 2. 提交登錄表單
payload = {
'session[username_or_email]': 'your_username',
'session[password]': 'your_password',
'remember_me': '1',
'authenticity_token': auth_token,
}
resp = session.post('https://twitter.com/sessions', data=payload)
# 3. 判斷登錄成功
if resp.url == 'https://twitter.com/home':
print('登錄成功')
# 後續請求直接用 session.get/post,自動攜帶 Cookie
else:
print('登錄失敗', resp.status_code)
requests.Session 自動管理 Cookie、連接池、重定向、Keep-Alive,代碼量減少 80%,可讀性大幅提升。