如何获取有关 Chrome 缓存文件的更多信息?或者 ChromeCacheView 是如何工作的?

问题描述 投票:0回答:1

我想从浏览器的缓存中获取一些数据。 Chrome的缓存文件名类似于

f_00001
,毫无意义。 ChromeCacheView可以获取缓存文件名对应的请求链接。

ChromeCacheView是一个小实用程序,可以读取Google Chrome Web浏览器的缓存文件夹,并显示当前存储在缓存中的所有文件的列表。对于每个缓存文件,会显示以下信息:URL、内容类型、文件大小、上次访问时间、过期时间、服务器名称、服务器响应等。 您可以轻松地从缓存列表中选择一个或多个项目,然后将文件提取到另一个文件夹,或将 URL 列表复制到剪贴板。

但是这是一个GUI程序,只能在Windows上运行。 我想知道它是如何工作的。

换句话说,我怎样才能获得有关缓存文件的更多信息,尤其是请求链接等

python google-chrome selenium-chromedriver google-chrome-devtools
1个回答
0
投票

经过长时间的搜索,我找到了答案。

Chrome 磁盘缓存格式的说明可以在以下页面找到:

通过阅读这些文档,我们可以用任意编程语言实现解析器。

幸运的是,我找到了两个Python库可以做到这一点。

第一个在Python3下似乎不能正常工作。第二个非常棒并且完美地完成了工作。关于如何使用pyhindsight,主页上有详细的说明,我将介绍如何将其集成到我们的项目中。

import pyhindsight
from pyhindsight.analysis import AnalysisSession
import logging
import os

analysis_session = AnalysisSession()

cache_dir = '~\AppData\Local\Microsoft\Edge\User Data\Default'
analysis_session.input_path = cache_dir
analysis_session.cache_path = os.path.join(cache_dir, 'Cache\Cache_Data')
analysis_session.browser_type = 'Chrome'
analysis_session.no_copy = True
analysis_session.timezone = None


logging.basicConfig(filename=analysis_session.log_path, level=logging.FATAL,
                    format='%(asctime)s.%(msecs).03d | %(levelname).01s | %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')
run_status = analysis_session.run()

for p in analysis_session.parsed_artifacts:
    if isinstance(p, pyhindsight.browsers.chrome.CacheEntry):
        print('Url: {}, Location: {}'.format(p.url, p.location))

就这些了,请加入。感谢您的pyhindsight

© www.soinside.com 2019 - 2024. All rights reserved.