吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1554|回复: 15
收起左侧

[讨论] Python 控制Edge 保存下载网页

[复制链接]
hgils 发表于 2023-4-20 16:47
本帖最后由 hgils 于 2023-4-21 09:20 编辑


一直想实现定时自动保存某个网页。之前采用Powershell控制IE,结果发现会弹出保存的窗口,需要点击一下。

后来研究采用Python 控制Edge可以实现保存相关网页。
参考了网上一些方案,代码如下,需要安装Webdriver 、selenium 以及Pywin32 模块
[Python] 纯文本查看 复制代码
"""
利用Edge保存网页

"""
from selenium import webdriver
import win32api
import win32con
import win32clipboard
from ctypes import *
import datetime
import time

wd = webdriver.Edge(r"webdrive 安装位置")
wd.get(r"http://www.baidu.com")
time.sleep(20)
text=str(datetime.datetime.now().strftime("%Y%m%d"))

# 将日期复制到剪切板
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText(text)
win32clipboard.CloseClipboard()

# 按下ctrl+s
win32api.keybd_event(0x11, 0, 0, 0)
win32api.keybd_event(0x53, 0, 0, 0)
win32api.keybd_event(0x53, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(0x11, 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(5)

# 按下ctrl+v
win32api.keybd_event(0x11, 0, 0, 0)
win32api.keybd_event(0x56, 0, 0, 0)
win32api.keybd_event(0x56, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(0x11, 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(2)

# 按下回车
win32api.keybd_event(0x0D, 0, 0, 0)
win32api.keybd_event(0x0D, 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(5)
wd.close()

免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
冥界3大法王 + 1 受教!这样说来我的python for delphi修改下也能享受了~
dojy + 1 + 1 感谢分享

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Eliauk66 发表于 2023-4-20 17:57
[Python] 纯文本查看 复制代码
from selenium import webdriver

def save_webpage_screenshot(url, output_path):
    options = webdriver.ChromeOptions()
    options.add_argument("--headless")
    options.add_argument("--window-size=1920,1080")
    options.add_argument("--disable-gpu")
    driver = webdriver.Chrome(options=options)

    driver.get(url)
    driver.implicitly_wait(5)
    driver.save_screenshot(output_path)
    driver.quit()

url = "https://www.baidu.com/"
output_path = "screenshot.png"
save_webpage_screenshot(url, output_path)
ysjd22 发表于 2023-4-20 18:57
sumile 发表于 2023-4-20 19:16
wangtietou 发表于 2023-4-20 19:25
也可以调用Chrome DevTools协议的Page.captureSnapshot
[Python] 纯文本查看 复制代码
from selenium import webdriver
import datetime
import time
 
wd = webdriver.Edge()
wd.get(r"http://www.baidu.com")
filename=str(datetime.datetime.now().strftime("%Y%m%d"))+".mhtml"
 
webcontent=wd.execute_cdp_cmd('Page.captureSnapshot', {})
with open(filename, 'w', newline='') as f:
    f.write(webcontent['data'])
time.sleep(5)
wd.close()
艾sk贝拉 发表于 2023-4-20 19:39
这是保存网页内容还是保活网页心跳?
yy103050 发表于 2023-4-20 20:38
看了这个代码,学会了很多哦
lj149446 发表于 2023-4-20 21:05
感谢分享
blacktulip 发表于 2023-4-21 03:41
标题错了
lizy169 发表于 2023-4-21 07:54
win32.还是很实用的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表