最近在做网页分析的时候偶然有需求将网页保存为MHTML格式,这样可以最大程度的保留网页的样式以及图片信息,搜索寻找整理过后得到如下代码
其中,pagelist.txt
文件内容如下:
邮箱,qq邮箱,/邮箱,阿里邮箱,/alimail/auth/login邮箱,163邮箱,/邮箱,新浪邮箱,/搜索引擎,百度,/搜索引擎,搜狗,/搜索引擎,bing,/商城,淘宝,/商城,小米商城,/shop商城,京东,/商城,唯品会,/
保存代码如下
from selenium import webdriverimport csvimport os# 构造webdriverdriver_path = r"C:\Program Files\Google\Chrome\Application\chromedriver.exe"driver = webdriver.Chrome(driver_path)def save_page(kind, name, url):driver.get(url)# 执行chrome dev命令获得mhtml文件内容res = driver.execute_cdp_cmd('Page.captureSnapshot', {})# 生成文件夹save_path = f'source/{kind}/{name}.mhtml'if not os.path.exists(os.path.dirname(save_path)):os.makedirs(os.path.dirname(save_path))# 保存到本地with open(save_path, 'w', newline='') as sf:sf.write(res['data'])if __name__ == '__main__':# 打开所有网页列表with open("pagelist.txt", mode='r', encoding='utf-8') as f:csv_reader = csv.reader(f)for line in csv_reader:print(line)save_page(line[0], line[1], line[2])driver.quit()