请注意,本文编写于 629 天前,最后修改于 629 天前,其中某些信息可能已经过时。
这两天尝试CloudFlare官方免费CNAME接入方式,详情见文章:
经过测试通过 Cloudflare pages function方法已失效,最后只有通过 SaaS配置成功。
问题出现
然而,在百度搜索资源平台的sitemap抓取及抓取诊断却出了问题:
- sitemap状态变为解析错误
- 在抓取诊断中报错:
socket
读写错误
百度官方对socket
读写错误的解释:
【socket读写错误】
当百度spider访问服务器,进行tcp通信的时候,socket读写发生异常,导致数据不能正常返回。请检查服务器连接状况和防火墙设置是否符合预期。
尝试解决
在查询了一圈网上资料后,确定了需要在Cloudflare上配置WAF防火墙规则。
1、百度爬虫抓取诊断链接失败解决方法
登录Cloudflare → 安全性 → WAF → 防火墙规则 → 创建防火墙规则。
2、百度爬虫抓取Sitemap地图失败解决方法
同样的地方:登录Cloudflare → 安全性 → WAF → 防火墙规则 → 创建防火墙规则。
- 字段,选择“用户代理”
- 运算符,选择“包含”
- 添加新的用户代理,点击最后的“Or”
- 值,分别输入以下百度蜘蛛UA用户代理
Baiduspider/2.0
Baiduspider-image
Baiduspider-render/2.0
http://www.baidu.com/search/spider.html
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
整体表达式如下:
(http.user_agent contains "Baiduspider/2.0" and http.user_agent contains "Baiduspider-image" and http.user_agent contains "Baiduspider-render/2.0" and http.user_agent contains "http://www.baidu.com/search/spider.html" and http.user_agent contains "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" and http.user_agent contains "Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)")
写在后面
为什么这篇文章只是尝试解决问题呢,因为经过以上步骤后,在百度抓取诊断后测试的结果是时灵时不灵,结果不尽如人意。
直到看到一位同样遇到这类问题的网友写了这么一段话:
感慨万千!
6 条评论
国内访问也开启了cf吗?
没有,现在国内走直连,国外cf
好吧,看到博主说的会影响百度抓取,果断去测试了下显示正常,我的也是国外cf
那你网站很快啊,没被减速
结尾这段话,有点伤人啊
怎么说呢,其实整个环境就是这样