This topic created in 1493 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 用的就是这个
|