官方后台状态栏上的“已发现 - 尚未建立索引”数字停留在850。服务器运行了整整三个月,收录报表里仅有1条记录指向主页。带有商品分类前缀的内页抓取频次常年为0。每天都有大量新注册地址面临收录停滞现象。爬虫程序每天在互联网上读取数万亿个网页,分配给全新低权重站点的访问时间短至3秒。3秒钟内,爬虫找不到通向内页的门,带着空白记录离开。
查阅服务器访问记录是弄清爬虫去向的手段。在Linux环境下下载昨天的纯文本访问日志。使用文本编辑器搜索官方爬虫特有字符。全天有20条访问记录。查看全天20条记录请求的具体路径,18条集中在主页根目录,剩下2条读取了爬虫协议文本。庞大的商品详情页根本不在日志列表里。没有任何机器程序光顾过内页。
网页内部的链接网决定了爬虫行走的路线。鼠标点击次数是衡量网页深浅的尺子。经历4次以上鼠标点击才能到达的详情页,被分配到的抓取概率成指数级衰减。电商站点的老旧商品页被排在分页导航的第25页。爬虫顺着第1页往下爬,到第5页停止前进。旧商品页成为无法被触及的孤岛。把近期发布的50个重点商品提取出来,放置在首页下方专门开设的文字推荐区块中。含有超文本标记的代码将首页权重输送给内页,爬虫读取首页源码便能读取一长串内页地址。
爬虫工程师在系统内部设定了上下浮动的访问阈值。一台响应迟缓的服务器,单日接纳的官方爬虫访问总数被严格限制在极低水平。
网页代码的体积与服务器响应速度决定了单位时间内的抓取量。爬虫抓取一条完整的超文本代码耗费1200毫秒,当天的访问配额会被极其缓慢的加载速度耗尽。打开Chrome浏览器开发者面板,Network网络选项卡下的Waiting时间是一项参考指标。将等待时间压缩到200毫秒以内,爬虫的工作效率成倍增加。把网页体积压缩到50KB以下,剔除页面头部多余的样式代码和无用的内联脚本。
处理重复内容能节省大量被浪费的访问额度。带参数的繁杂链接会制造海量雷同页面。一件包含红、黄、蓝3种颜色,搭配大、中、小3个尺码的冲锋衣,由后台程序生成了9个带有不同颜色与尺码参数代码的独立链接。爬虫花费9次抓取配额,读取了9次除了颜色参数外毫无差别的图文描述。编写一段正则代码拦截无效参数,在页面的代码头部加入规范标签指向纯净版路径。
纯JavaScript渲染的页面是一堵阻挡抓取的墙。采用Vue或React编写的单页面应用,初始源码中只有1个空壳排版标签。爬虫需要调动网页渲染服务去执行多重脚本代码,排队等待渲染的时间长达14天。采用服务端渲染技术,由服务器预先拼接输出完整的静态文档内容,将文字毫无保留地呈现给爬虫程序。
丰富的信息密度让网页具备被建立索引的资格。一页只包含2张商品图片和30个字简短描述的页面,被算法判定为内容单薄。单页内填充包含500字以上的参数介绍、测试指标以及使用说明。增加文字占比,将文本与代码的比率拉高到25%以上。为每一张插图补充图像替换文本,给无法识别图像的爬虫提供文字解说。
网域的历史足迹影响机器程序的访问频率。一个刚注册30天的新名字,每天的抓取配额上限固定在100次左右。老地址停靠5年,重新建站后的首周依然能获得每天超过800次的抓取宽容度。在时光机工具里输入地址,能看到过去10年间的所有历史快照记录。老旧名字遗留了成百上千个外部引荐痕迹。顺着过往的痕迹,爬虫成群结队地顺着外网进入新服务器。针对新站,在全网高权重信息板面上发布20篇包含纯文本名字的介绍文章,人工制造访问热度。
服务器日志审查细则
筛选状态码为301的跳转链条,超过3次自动断开。
排查404死链数量,占比超过整站15%需彻底清理。
识别假冒爬虫来源,通过反向解析核实真实访问者的身份标示。
统计每日抓取总数,低于50次属于严重停滞。
分析响应包体积,超2MB的页面极度占用带宽。
过滤503状态码,排查服务器过载引发的宕机记录。
页面代码瘦身指标
样式表文件捆绑打包,外部请求总数控制在5个以内。
清除无效内联样式,缩减源码总体积至规范要求。
图片转码为高压缩比格式,单张大小缩减至100KB内。
非首屏图片采用延迟加载,添加特定延迟属性代码。
剔除冗余排版节点,总数量控制在1500个上限。
压缩中文字体库文件,剔除未使用的字形符号。
网址结构规范化调整
移除路径内的中文字符,统一转码为短英文字母。
目录层级控制在3层以内。
使用连字符代替下划线分隔各个英文单词。
统一采用小写字母,避免大小写混合导致双重收录。
带有会话标识的乱码路径在控制台配置禁止读取规则。
删除末尾无意义的数字后缀与特殊符号。
网址类型分类处理表
| 页面访问类型 | 机器爬虫处理方式 | HTTP响应状态码 |
|---|---|---|
| 鞋类单品详情页 | 完整读取代码 | 200 OK |
| 带价格排序代码的单品页 | 指向纯净版原链接 | 200 OK |
| 下架旧商品页 | 永久重定向至新版 | 301 Moved Permanently |
| 购物车结算程序代码 | 爬虫协议文件拦截 | 屏蔽读取请求 |
| 已彻底删除商品页 | 返回明确错误提示 | 404 Not Found |
内容查重与质量审核
提取文本段落放进查重工具,重复率高于40%需重写。
页面正文增加行业专属名词,提升词汇丰富度。
替换千篇一律的厂商通稿,加入自采照片5张。
建立站内文章互联网络,每篇文章添加3个内部引荐。
检查网页标题字数,截断在60个字符以内。
增加带有清晰数值的参数对比列表,代替模糊描述。
移动设备适配排查
在手机模拟器下测试页面横向滚动条,消除溢出宽度。
调整触控目标间距,按钮之间保留8像素以上的安全距离。
设定网页字体标准尺寸为16px,提升小屏幕阅读舒适度。
关闭全屏遮挡的弹窗广告代码,防止内容被遮盖。
使用官方测速工具跑分,移动端性能分数需达80。
外部干预操作备案
在官方站长后台手动提交包含5000条上限的目录清单文件。
使用抓取检查工具发起单次读取请求,每日限额50条。
设定Ping推送程序,内容更新后向服务端发送通知代码。
定期清理无效旧文章,使用410状态码告知已永久移除。
观察日志内图像爬虫的活动频率判断图片建库情况。
监测移动端和桌面端机器人的访问比例,常态保持在8比2左右。