在Python程序中跟踪唯一下载文件的最有效方法是什么?

时间:2012-03-27 23:48:13

标签: python beautifulsoup mechanize

这不是一个特定的问题,而是我正在寻找更多的“Pythonic”哲学答案。也就是说,跟踪独特项目并确保不会出现重复项目的最佳方法是什么?

例如,我正在编写一个脚本来抓取一个网站,以获取SoundCloud上歌曲的链接,这样我就可以自动下载它们了。如果我想用cron来自动化这个程序,那么确保我只下载我还没有的内容的最有效方法是什么?

或者,如果我下载了图片,我怎样才能确保没有重复项,或者是否有某种程序可以有效地搜索和删除重复项?

有点开放式,所以尽可能少或尽可能多地贡献。

感谢。

1 个答案:

答案 0 :(得分:2)

使用dict或set。考虑计算每个项目的校验和。这将带您进入所谓的内容可寻址存储,这就是校验和实际存储的位置,就好像它是项目的“名称”一样,并且存储了一个单独的索引,它将文件名或歌曲名称之类的内容映射到校验和或数据块。在您的特定情况下,CAS方法的问题在于,您可能无法在远程端获得针对新内容计算的校验和 - 这就是rsync等程序避免复制重复数据的方式。