php更改其他页面内容,php – 检查页面内容是否已更改的最佳方法?

我有一个爬虫爬行成千上万的页面并索引/解析页面的内容,我正在努力的一件事是检查页面的内容是否已经有效地更新,而不必抓取它并检查页面的内容.

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

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

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

解决方法:

您可以尝试使用服务器响应中“last-mofidied”标头中包含的值.将其解析为一个漂亮的对象将允许简单的日期比较,让你检查是否应该重新刮.例如(在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

标签:python,php,hash,web-crawler

来源: https://codeday.me/bug/20190703/1361618.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值