使用selenium保存完整网页

2019-03-07  本文已影响0人  yuyingxiang

使用selenium保存完整网页

Chrome浏览器在保存网页时可以使用mhtml格式,保存单页面网页,可以直接将整个页面最大化的保持原样,包括图片、js、css保存为单页面。默认是这个选项是关闭的,需要在chrome://flags中将其打开。selenium可以化处理浏览器各类操作,但是保存网页时的弹窗是windows弹窗,selenium无法操作,需要使用pywin32来解决。具体方式如下:

打开mhtml格式支持:

    options = webdriver.ChromeOptions()

    options.add_argument('--save-page-as-mhtml')
    driver = webdriver.Chrome(chrome_options=options)

按下ctrl+s

    win32api.keybd_event(17, 0, 0, 0)  # 按下ctrl
    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

获取另存为窗口windows句柄并激活,输入enter保存。

    hd = win32gui.FindWindow(u"#32770", u"另存为")
    win32gui.SetForegroundWindow(hd)
    sleep(0.2)

    win32api.keybd_event(13, 0, 0, 0)  # 按下enter
    win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放enter

win10 64位在是这个类,其他系统可以尝试后修改,也可以定位下文件名输出框键入文件名,然后定位保存按钮触发保存,不过我对win32api不熟悉,所以没有这么操作,直接激活窗口之后发送enter键保存,然后重命名。

上一篇 下一篇

猜你喜欢

热点阅读