首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python 自動化操作 IE 登錄土豆網:win32com 實戰

     編輯:更多程式設計知識

適用場景

  • 需模擬真實瀏覽器行為(JavaScript 渲染、Cookie 管理);
  • 目標網站無公開 API,且反爬蟲較強;
  • Windows 環境,已安裝 Internet Explorer。

核心代碼


# -*- coding: utf-8 -*-
import win32com.client
import time

ie = win32com.client.Dispatch('InternetExplorer.Application')
ie.Navigate('https://login.tudou.com/login.do?noreg=ok')
ie.Visible = 0  # 0=隱藏, 1=顯示

# 等待頁面加載完成
while ie.Busy:
    time.sleep(1)

doc = ie.Document
doc.getElementById('email').value = 'your_account'
doc.getElementById('pass').value = 'your_password'
doc.getElementById('login_submit').click()

time.sleep(4)  # 等待登錄跳轉
print('LOGIN SUCCESS')

# 後續可繼續操作 DOM、提取數據、截圖等
# ie.Quit()  # 結束時關閉

關鍵點解析

  1. Dispatch('InternetExplorer.Application') 啟動 IE 實例;
  2. Navigate(url) 導航,Busy 屬性輪詢等待加載;
  3. Document 返回 DOM 文檔對象,支持 getElementById、getElementsByTagName 等標準 DOM API;
  4. 設置 value 模擬輸入,click() 模擬點擊;
  5. 登錄後可通過 ie.Document.cookie 獲取 Cookie 供 requests 會話複用。

優缺點與替代方案

方案優點缺點
IE COM 自動化真實瀏覽器環境、完美執行 JS、處理複雜登錄流程僅限 Windows、啟動慢、佔用資源大、IE 已停止維護
Selenium + WebDriver跨瀏覽器、跨平台、生態成熟、支持無頭模式需安裝驅動、較重
requests + 手動構造表單輕量、快、無依賴無法執行 JS、難以應對動態 Token、驗證碼
Playwright / Puppeteer (Python 綁定)現代、快、無頭、強大選擇器需 Node 環境、學習曲線稍陡

建議

新項目優先選 Playwright 或 Selenium;維舊項目或極簡腳本可用 IE COM。注意 IE 於 2022 年 6 月停止支持,長期專案請規劃遷移。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved