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)

posted @ 2020-09-03 14:43  JunCode  阅读(5624)  评论(2编辑  收藏  举报