獲取 html
執行js得到整個HTML,這里得到的是純html文件
html = driver.execute_script("return document.documentElement.outerHTML")
獲取完整的網頁信息
一般一個網頁會包括 html、js、css 圖片、Flash動畫等文件,我們可以通過右鍵另存為的方式將網頁保存下來
保存下來的文件一般是一個 html 文件和一個資源的文件夾,文件夾內包括了css、js、圖片等資源文件。
selenium+pywin32實現網頁另存為
from selenium import webdriver
import time
import win32api
import win32con
driver = webdriver.Chrome()
driver.get("url")
win32api.keybd_event(17, 0, 0, 0) # 按下ctrl
win32api.keybd_event(65, 0, 0, 0) # 按下a
win32api.keybd_event(65, 0, win32con.KEYEVENTF_KEYUP, 0) # 釋放a
win32api.keybd_event(83, 0, 0, 0) # 按下s
win32api.keybd_event(83, 0, win32con.KEYEVENTF_KEYUP, 0) # 釋放s
# win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0) # 釋放ctrl
win32api.keybd_event(13, 0, 0, 0) # 按下enter
win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0) # 釋放enter
# 預估下載時間,后期根據實際網速調整
time.sleep(5)
mhtml
mhtml 是一種單一檔案網頁或網頁封存檔案,將一個多附件網頁(如包含大量圖片、Flash動畫、Java小程序的網頁)儲存為單一檔案,這種格式有時被簡稱為MHT。
將網頁存儲為mhtml文件可以使用 word 進行編輯,將資源文件和html文件整合在一起查看也比較方便
有一些瀏覽器不支持保存成mhtml文件,具體要看每個瀏覽器的設置。下面是以chrome瀏覽器為例:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--save-page-as-mhtml')
driver = webdriver.Chrome(chrome_options=options)
driver.get("url")
data = driver.execute_cdp_cmd('Page.captureSnapshot', {}).get('data')
with open(path, 'w+',newline='') as f:
f.write(data)