• 首页
  • 狐文
  • 狐图
  • About
狐窝
OvO
  1. 首页
  2. 未分类
  3. 正文

网络爬虫判断页面是否更新

2017年08月06日 229点热度 0人点赞 0条评论

2013-11-14 19:53 from---http://blog.csdn.net/c740869614/article/details/16120951

1、304页面http状态码

    当第二次请求页面访问的时候,该页面如果未更新,则会反馈一个304代码,而搜索引擎也会利用这个304http状态码来进行判断页面是否更新。

      首先第一次肯定是要爬取网页的,假设是A.html,这个网页存储在磁盘上,相应地有个修改时间(也即是更新这个文件的时间)。

那么第二次爬取的时候,如果发现这个网页本地已经有了,例如A.html,这个时候,你只需要向服务器发送一个If-Modified-Since的请求,把A.html的修改时间带上去。

如果这段时间内,A.html更新了,也就是A.html过期了,服务器就会HTTP状态码200,并且把新的文件发送过来,这时候只要更新A.html即可。         如果这段时间内,A.html的内容没有变,服务器就会返返回HTTP状态码304(不返回文件内容),这个时候就不需要更新文件。

2、Last-Modified文件最后修改时间
    这是http头部信息中的一个属性,主要是记录页面最后一次的修改时间,往往我们会发现,一些权重很高的网站,及时页面内容不更新,但是快照却还是能够每日更新,这其中就有Last-Modified的作用。通产情况下,下载网页我们使用HTTP协议,向服务器发送HEAD请求,可以得到页面的最后修改时间LastModifed,或者标签ETag。将这两个变量和上次下载记录的值的比较就可以知道一个网页是否跟新。这个策略对于静态网页是有效的。是对于绝大多数动态网页如ASP,JSP来说,LastModifed就是服务器发送Response的时间,并非网页的最后跟新时间,而Etag通常为空值。所以对于动态网页使用LastModifed和Etag来判断是不合适的,因此Last-Modified只是蜘蛛判断页面是否更新的一个参考值,而不是条件。
3、比对文件大小
    搜索引擎还会取出之前页面文件,和现在的文件进行对比,不过因为大部分网站都是一种替换式更新,往往比对文件大小很难说明问题,因此常见与页面链接变化配合使用。

4、使用MD5数字签名

每次下载网页时,把服务器返回的数据流ResponseStream先放在内存缓冲区,然后对

ResponseStream生成MD5数字签名S1,下次下载同样生成签名S2,比较S2和S1,如果相同,则页面没有

跟新,否则网页就有跟新。需要说明的是用md5算法对文本刘签名的速度是极快的,M级的数据可以在毫秒

内完成。这种策略虽然也把页面数据从服务器传输到了本地机,但是省掉了页面的I/O操作,对系统性能的

提升是很有帮助的。

标签: 暂无
最后更新:2017年08月06日

OvO

狐狸

点赞
< 上一篇
下一篇 >
最新 热点 随机
最新 热点 随机
brave编译打包时dump_syms报错Couldn't locate EXE or DLL file 使用Windows Kits创建PE 及精简镜像 Windows精简部署相关简易内容 APC UPS SUA1000ICH 踩坑记 TrueNAS SCALE虚拟机无法 Ping主机 TrueNas Scale libvirt-sock RDMA RoCE相关资料 Linux系统修改网卡名(eth0-3) Linux系统打开SRIOV 构建android内核时DTC工具中的多个定义错误 Windows 来宾系统提示“安全删除硬件” 修改jar的三种方法(反编译jar) 如何在 Debian 10上安装和配置 VNC Openwrt内SR-IOV网卡桥接问题 Linux下编译android 时报错loadlocale.c:130 windows 查看文件夹被那个进程占用 MongoDB中的多表关联 mongodb 学习记录
Maven启用代理访问 freenas 插件权限设置 UDPSpeeder为UDP加速 (udp2raw-tunnel) Win10 19041关闭保留空间 wordpress文件系统结构 Python生成windows可执行的exe文件 git回退版本 IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除 安卓刷机包 system.img解压 解决“网易邮箱提醒:一次被阻止的收信行为”,IMAP无法连接的问题 Python: Win7下使用 pip install lxml 无法安装lxml? 利用iptables防止ssh暴力破解和控制网速 Python书籍推荐 OpenWrt 编译 LuCI ---> Applications 添加插件应用说明 Java 企业级开发项目框架 火狐打开京东商品页面提示错误 http://www.jd.com/?l=1&err=3 目录级别的冗余存储:SnapRAID linux CPU压力测试脚本
标签聚合
路由 https git http 文件 docker com linux 编译 ssl 下载 密码 android 网卡 e chrome

COPYRIGHT © 2020 狐窝. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS