1

我正在使用 python 2.7 并用于requests获取网页。

我想知道获取的对象是否已更改。

r = requests.get(url,headers=None,proxies=None,timeout=int(parms['timeout']))
html = r.text

if checksum(html)!=checksum_last: 
   then do something
else:
    do nothing

我会将校验和保存在数据库中。如何创建校验和?

谢谢

4

2 回答 2

8

正如 Jon Clements 提到的,您可以使用该hashlib模块:

>>> import requests
>>> import hashlib
>>> page = requests.get('http://www.stackoverflow.com')
>>> hashlib.sha256(page.text.encode('utf-8')).hexdigest()
'807ea5e7c419aefc7a40ba1140ba6ef4001c60f3c21142eb743bc1d393c1bb62'
>>> 
于 2013-06-18T02:22:27.087 回答
2

假设您不需要加密哈希函数,您可以使用Adler-32CRC-32来自zlib.

r = requests.get(url,headers=None,proxies=None,timeout=int(parms['timeout']))
html = r.text
if zlib.adler32(html.encode("utf-8")) != checksum_last:
    print("New page!")
于 2013-06-18T02:23:54.083 回答