This topic created in 1498 days ago, the information mentioned may be changed or developed.
背景:
对某一个网站进行定时爬虫,每次都会爬下来大量的文件,每次都会将文件记录下来,也可以顺便记录文件 md5 。
记录存储在 mysql ,es ?
在 n 次的爬虫,需要与第 n-1 次的爬虫 两次爬下来的所有文件进行对比,把有变化的文件进行分析
有什么比较好的办法 后端是 java
7 replies 2022-04-11 21:39:54 +08:00  | | 1 raaaaaar Apr 11, 2022 1 redis hash ,文件名 -> md5 ? |
 | | 2 fishCatcher Apr 11, 2022 via iPhone 1 量很大的话可以考虑一下 Merkle tree |
 | | 3 documentzhangx66 Apr 11, 2022 1 想躺就直接 md5 然后存 mysql 。
不想躺:
1.文件尺寸。 2.文件固定位置抓 4 个点。 3.文件固定位置抓 8 个点。 4.xxHash 。
这 4 个步骤相当于剪枝,性能完爆 md5 。 |
 | | 4 quxinna Apr 11, 2022 beyond compare |
 | | 6 polarbear007 Apr 11, 2022 1 这种情况,记录 md5 可能不太合适吧。 因为要计算 md5 的话,你需要先把文件下载下来才行(除非网站有提供每个文件的 md5 值)。 看看有没有办法在下载文件之前,先对页面上的其他信息进行分析,确认文件是否下载过。比如文件名,所在页面 id 之类的。 |
 | | 7 tidos Apr 11, 2022 1 Merkle tree. DynamoDB 用的就是这个 |