(2025.9.17更新)预防措施

原方法一对于新版本Edge可能已经失效,目前建议试一下方法一,如果无效则使用方法二并添加预防措施:

1.点击Edge页面右上角收藏栏左边的拓展模块

2.获取MicroSoft Edge拓展

3.搜索并安装tab session manager,管理最近关闭的页面和会话栏

前言

使用edge等浏览器时,我们可能会保留许多页面,这些页面分散存储于历史记录各处。如果edge浏览器意外关闭,重启时无法恢复最近使用的页面,此处提供两种解决方法。

方法一(注意四个加粗部分操作)

1.碰到这种情况,首先千万不要关闭edge(如果关了千万不要在打开关闭,先进行第二步),保持打开,并新打开几个网页,不要让浏览器只有一个新建标签页!

2.打开文件夹找到以下位置(记得勾选文件夹上方的查看-->隐藏的项目)

C:\Users\XXX\AppData\Local\Microsoft\Edge\User Data\Default\Sessions

可以看到两对session/tab文件。

3.将老的一对session/tab复制到另一个目录。

4.通过在任务管理器中结束进程或者在edge开着的情况下直接重启来强制关闭 Microsoft Edge。

5.使用 Edge 创建的最新session/tab文件名重命名旧的session/tab文件名。

6.删除新的session/tab文件,将重命名的旧session/tab文件文件复制回 sessions 文件夹(与上述会话路径相同)。

7.打开 Microsoft Edge,系统将提示恢复会话对话框只需执行“恢复”,就会发现会出现最近使用的选项卡。

方法二

搜索Chrome Session Restore / Recovery of corrupted Session files(lsauer.net)

使用session解析工具获取最近使用的网站的url。

或者使用如下Python程序手动提取所有最近浏览的网页(需要将程序与方法一中得到的Tab和Session文件放在同一文件夹下,可能会提取出非常庞大数量的网页)

import re
import os
import tkinter as tk
from tkinter import messagebox

def setup_gui_root():
    """创建一个隐藏的Tkinter根窗口,用于显示消息弹窗。"""
    root = tk.Tk()
    root.withdraw()  # 隐藏主窗口
    return root

def find_and_clean_urls(directory):
    """
    在指定目录中自动扫描Session/Tabs文件,并提取、清理、返回URL集合。
    """
    all_urls = set()
    
    # 自动扫描当前目录下的目标文件
    target_files = [f for f in os.listdir(directory) if f.startswith(('Session_', 'Tabs_'))]

    if not target_files:
        return None, 0 # 返回None表示没有找到文件

    for filename in target_files:
        file_path = os.path.join(directory, filename)
        try:
            with open(file_path, 'rb') as f:
                content = f.read()

            # 解码并预处理文本
            decoded_content = content.decode('utf-8', errors='ignore').replace('\x00', '')
            decoded_content = re.sub(r'(https?):(\s*/\s*/\s*)', r'\1://', decoded_content)

            # 使用正则表达式查找所有URL
            url_pattern = re.compile(r'https?://[a-zA-Z0-9\.\-@_:%+~#=/?&;,]+')
            found_urls = url_pattern.findall(decoded_content)

            for url in found_urls:
                # 清理并过滤URL
                cleaned_url = url.strip('.,;)\'"\\')
                if '.' in cleaned_url and len(cleaned_url) > 12 and not cleaned_url.startswith("https://clients2.google.com"):
                    all_urls.add(cleaned_url)
        except Exception as e:
            # 如果单个文件处理失败,打印错误但继续处理其他文件
            print(f"处理文件 {filename} 时出错: {e}")
            
    return all_urls, len(target_files)

# --- 主程序 ---
if __name__ == "__main__":
    # 初始化GUI,用于弹窗
    root = setup_gui_root()
    
    # 获取脚本所在的当前目录
    current_directory = os.path.dirname(os.path.abspath(__file__))
    
    # 执行URL提取
    found_urls, file_count = find_and_clean_urls(current_directory)
    
    if found_urls is None:
        messagebox.showwarning(
            "未找到文件",
            "请确保此程序与你的 'Session_' 和 'Tabs_' 文件放在同一个文件夹里!"
        )
    elif not found_urls:
        messagebox.showinfo(
            "操作完成",
            f"已扫描 {file_count} 个文件,但没有在其中找到任何有效的URL。"
        )
    else:
        output_filename = "CLEANED_URLS.txt"
        output_path = os.path.join(current_directory, output_filename)
        
        with open(output_path, 'w', encoding='utf-8') as f:
            for url in sorted(list(found_urls)):
                f.write(url + '\n')
        
        messagebox.showinfo(
            "提取成功!",
            f"任务完成!\n\n"
            f"共扫描 {file_count} 个文件。\n"
            f"成功提取并保存了 {len(found_urls)} 个不重复的网址。\n\n"
            f"结果已保存到文件:\n{output_path}"
        )

    root.destroy()

参考链接

Restore Session in Edge (maybe MartMCD can help please?) - Microsoft Community

How to restore (not recently closed) tabs ? - Microsoft Q&A

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐