蜘蛛不是你请来的客人,是你得先把门打开。目录页铺了几千个,日志里真蜘蛛的访问还是稀稀拉拉,隔三差五来一趟,来的还净是首页——这种局面我见得太多了。问题基本都不在“引”这个动作上,而是入口压根没铺开。泛目录代引蜘蛛这回事说到底就一句话:页面是货,入口是路,路不通,货堆在仓库里没人看得见。下面这些坑大多我自己踩过一遍,你对着查,八成能对上号。

泛目录代引蜘蛛,引的是路不是量
新手最容易犯的错,是把引蜘蛛当成堆量。程序一跑,几万个 URL 出来了,心里就踏实了,觉得量这么大,蜘蛛总要来啃一口。可蜘蛛那边不是这么算账的,它每天能跑多少有调度、有优先级,先看入口页靠不靠得住,再看链接层级深不深,最后才决定要不要给这批新页面分额度。你的页面再多,如果从首页到它要拐七八道弯,或者压根没人链过去,那在它眼里就是一堆没有路标的地址,排在最后面。真要干的事是把路铺出来:首页到栏目、栏目到列表、列表到内页,顺着能一层层走下来,中间别断。
先翻日志,凭感觉判断基本都会错
别急着改代码,先看日志。access_log 里躺着最真实的答案,`grep -i ‘Baiduspider’ access.log | awk ‘{print $7}’ | sort | uniq -c | sort -rn | head -50` 跑一遍,被爬得最多的 URL 一眼就看出来。你大概会撞上三种情况:一是爬的全是首页和几个老页面,新目录页压根没进过日志,那是入口问题;二是新页面进了日志,但状态码一片 404 或者 301,那是地址写错了,或者伪静态规则没对上;三是状态码 200 但频次低得可怜,那多半是内容质量或者响应速度的事。还有一种更坑的:日志里热热闹闹,全是采集器和各种工具在爬,真蜘蛛没来几趟,自己把自己骗了小半个月。
入口页一断,目录页就成了孤岛
入口这东西不是只有首页算。栏目页、列表页、分页、标签页、相关推荐,个个都是路。断得最多的几个地方:分页链接上挂了 rel=”nofollow”,一挂就等于告诉蜘蛛后面别去了;列表页用 JS 异步拉数据,蜘蛛拿到手是个空壳;生成的目录页只挂在首页一个“查看更多”按钮上,点一次就没下文;还有面包屑,一层面包屑直接指回首页,等于把层级又重新拉平了。检查办法很朴素,把浏览器的 JS 关掉,或者用 curl 直接抓列表页的 HTML,看里面有没有指向下一层的 a 标签。有,路就在;没有,蜘蛛也是瞎子。
robots 和 sitemap 写反了,等于自己关门
这两份文件出错的比例高得离谱。robots.txt 里为了省抓取,顺手写一句 Disallow: /dir/,甚至来一句 Disallow: /*?,结果新生成的目录页全落在这条规则里;转头 sitemap.xml 又把几万个 URL 一股脑列出来。一边关门一边递名片,蜘蛛只能按规矩办,进不去。sitemap 的坑也不少:里面列的 URL 一大半是 404 或者直接跳走;文件太大没拆索引;换过域名以后 sitemap 里写的还是旧域名。改完别只信后台那个“已提交”的提示,自己 `curl -I` 请求一遍,看头部的状态码和实际落点,真要确认抓取情况还是以搜索引擎官方文档和站长后台的说明为准。
服务器撑不住抓取,蜘蛛会自己降频
目录页本身很轻,模板一套、数据一填,静态化出来也就几十 KB。可蜘蛛一旦成批地抓,压力就不在页面上了,在并发和数据库连接上。小配置的机器,几十个并发过来就开始 502,或者响应拖到好几秒,蜘蛛碰到这种站,它会自己把频率往下压,压到什么程度你控制不了,可能几天才回来看一眼。还有一种更冤的:CDN 或者 WAF 的防护规则把可疑爬虫一并拦了,蜘蛛请求直接吃了个 403 或者验证页,而你在后台看流量还挺正常。这块具体怎么放行、UA 和 IP 怎么核对,各家产品规则不一样,以服务商或官方页面说明为准,别照抄别人的白名单。
铺完入口,还得盯着这三样
入口铺好只是第一步,后面得看反馈。第一看状态码,目录页能不能稳定返回 200,别今天 200 明天 404;第二看内链密度,一个目录页最好有三五个其它页链过来,别指望它孤零零待着还能被发现;第三看新页面被发现的节奏,用 site: 查一批样本,隔一两周再查一次,有没有变化心里就有数了。这三样都顺,再加页面才有意义;哪一样卡着,先修哪一样,别一边漏一边加。
所以真不用急着问“怎么能让蜘蛛多来点”。先把日志拉出来看三行数:真蜘蛛来过几次、爬到了第几层、状态码是多少。这三个数不对,铺多少目录都是孤岛。入口这件事做扎实了,蜘蛛自己会顺着路走,剩下的就是耐心和内容本身。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!