gpt4 book ai didi

python - 以编程方式读取 firefox 缓存

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:14 25 4
gpt4 key购买 nike

我关于如何煞费苦心地读取 firefox 缓存、搜索主机匹配正则表达式模式的图像 URL 的想法是检索 ~/.cache/mozilla/firefox/[]/cache2 下的缓存文件的所有内容,然后仅过滤包含图像 URL 的行。

这是缓存文件的示例:

.2.U.2.;...V.... 57 00000380: 0000 513a 6874 7470 3a2f 2f77 7777 2e74 ..Q:http://www.t 58 00000390: 6563 686e 6970 6167 6573 2e63 6f6d 2f77 echnipages.com/w 59 000003a0: 702d 636f 6e74 656e 742f 706c 7567 696e p-content/plugin 60 000003b0: 732f 7961 7369 702f 696d 6167 6573 2f64 s/yasip/images/d 61 000003c0: 6566 6175 6c74 2f72 7373 5f33 3278 3332 efault/rss_32x32 62 000003d0: 2e70 6e67 006e 6563 6b6f 3a63 6c61 7373 .png.necko:class 63 000003e0: 6966 6965 6400 3100 7265 7175 6573 742d

因为这些缓存文件好像是二进制文件,所以我会设置一个指向http的'h'的指针/任何东西,只要下一个字母的十六进制值为00就可以向前读取,在ascii表上似乎是“\0”。

为了防止重复,我会将这些 URL 写入一个文件,每次找到一个新 URL 时,我都会首先检查该文件的所有条目,以查看该 URL 是否已经存在。


这是最简单的方法,还是我遗漏了什么?我不想为此任务使用其他应用程序/扩展程序。

谢谢

最佳答案

以下应该大致完成您要实现的目标:

import glob, re

cache_folder = r"~/.cache/mozilla/firefox/[]/cache2\*"
urls = set()

for cache_filename in glob.glob(cache_folder):
with open(cache_filename, 'rb') as file_cache:
data = file_cache.read()
urls |= set(re.findall("(http.*?)\x00", data))

for url in urls:
print url

这会读取在缓存文件夹中找到的每个文件,并获取每个文件中所有 URL 的列表。然后它将所有这些匹配的 URL 存储到一个 set 中以避免任何重复。然后它会显示设置的条目。

您还可以考虑研究这些文件的格式。

关于python - 以编程方式读取 firefox 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32307941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com