selenium获取全部页面的html
获取 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)