gpt4 book ai didi

php - 检查页面内容是否已更改的最佳方法?

转载 作者:可可西里 更新时间:2023-10-31 23:30:35 24 4
gpt4 key购买 nike

我有一个爬虫程序可以爬取数十万个页面并索引/解析页面内容,我正在努力的一件事是检查页面内容是否已更新,以一种有效的方式,无需抓取它并检查页面内容。

显然我可以加载整个页面,然后重新解析所有内容并将其与我存储在数据库中的内容进行比较。然而,这是非常低效的,并且会使用大量计算,从而导致高昂的托管费用。

我正在考虑比较散列值,问题是如果页面更改了单个字节或字符,散列值就会不同。因此,例如,如果页面在页面上显示当前日期,则每次哈希都会不同,并告诉我内容已更新。

那么……你会怎么做呢?你会看看 HTML 的 kb 大小吗?您会查看字符串长度并检查长度变化是否超过 5%,内容是否已“更改”?或者是否存在某种散列算法,如果仅更改了一小部分字符串/内容,散列值将保持不变?

最佳答案

您可以尝试在来自服务器的响应中使用“last-mofidied” header 中包含的值。将其解析为一个漂亮的对象将允许进行简单的日期比较,让您检查是否应该重新抓取。例如(在 Python 中使用出色的 requests 库:

import requests
r = requests.get('http://en.wikipedia.org/wiki/Monty_Python')
site_last_modified_date = r.headers["Last-Modified"]

# from here, just parse the date and compare it with the last recorded date

关于php - 检查页面内容是否已更改的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28192838/

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