我对如何精心阅读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
因为这些缓存文件似乎是二进制文件,所以我会设置一个指针/任何内容到' h'只要下一个字母的十六进制值为00,就可以读取http,并在ascii表中显示为' \ 0'。
为了防止发表意见,我将这些网址写入文件,每次找到新网址时,我都会先检查该文件的所有条目,以查看该网址是否已存在。
这是最简单的方法,还是我在这里遗漏了什么?我不想使用其他应用/扩展来完成此任务。
由于
答案 0 :(得分:1)
以下内容应该大致与您要实现的目标相同:
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
中,以避免重复。然后显示设置条目。
您还可以考虑研究这些文件的格式。