入口頁能不能被抓到,很多时候不取决于頁面本身,而取决于它前面那层 CDN 和 WAF。頁面代碼没問题、狀態碼也正常,但日誌里始终只有零星几次訪問,問题往往出在流量還没到源站就被拦下了。
被拦住的时候,通常不會有明顯报错
和 404、500 不同,拦截發生在更前面:請求到達邊缘节点後被判定為可疑,直接返回 403、429,或者抛出一個 JS 校驗頁。對蜘蛛来说,這不是一個普通的错誤頁面,而是它不一定會去执行的東西,于是抓取到此為止。站長在源站日誌里看不到记錄,容易誤判成蜘蛛没来。
常见的几類拦截来源
- 频率限制:同一 IP 短時間内請求過多,触發限速。
- UA 與 IP 校驗:只認 UA 白名單,或反過来把某些 UA 段整体拉黑。
- JS 挑战:需要执行脚本才放行,而蜘蛛通常不执行。
- 地域與机房段封禁:把整個 IDC 網段拦掉,容易誤伤蜘蛛出口。
- 缓存與回源規則:缓存未命中導致回源被限,或回源地址配置有誤。
排查顺序:從日誌到單点驗證
- 先看 CDN 與 WAF 的拦截日誌,確認是否有對應時間点的拦截记錄。
- 再看源站日誌,確認請求是否到達。两者對比,能較快区分是邊缘拦截還是源站問题。
- 用與蜘蛛相同的 UA 和来源 IP 段做一次單点測試,观察是否被拦。
- 如果入口頁換了域名或 IP,检查新资源的防護策略是否同步,不少問题出在換资源之後没有跟着改配置。
配置上可以做的几件事
- 放行主流搜尋引擎的官方 IP 段,而不是只匹配 UA 字符串。
- 對入口頁這類需要频繁抓取的路径放宽频率阈值,與普通頁面区分開。
- 確認 robots.txt 和站点地图本身没有被拦,否則蜘蛛连規則都讀不到。
- 規則調整後把观察期留長一点,不要当天就下结论。
几個容易踩的誤区
- 只加 UA 白名單:UA 可以伪造,安全性和可抓取性是两件事,需要配合 IP 校驗。
- 直接關掉防護:入口頁暴露在公網,關掉防護換来的可能是另一類麻烦。
- 用一個 IP 反复測試就下结论:自家 IP 與蜘蛛 IP 段的待遇可能完全不同。
防護與抓取不是二選一
更稳妥的做法是分层:入口頁這類必须被抓的路径走較宽松的策略,配合 IP 段驗證;後台、接口等敏感路径保持嚴格策略。這样既不牺牲站点安全,也不至于在门口把蜘蛛劝退。
一個简單的判断标准:如果源站日誌里長時間没有来自目标蜘蛛的记錄,而頁面本身又没有明顯問题,就该先去前面那层找原因。