本文作者:GoGo闯

【GoGo闯SEO教程】#1.3.2-筑基篇-爬虫可理解:爬虫可见

GoGo闯 3个月前 ( 05-11 ) 275 抢沙发
摘要: 教程地址:https://www.bilibili.com/video/av51705141www.bilibili.com内容简介:1)存在时效性内容的站点,容易出现机器不可见的...

教程地址:

https://www.bilibili.com/video/av51705141www.bilibili.com


内容简介:

1)存在时效性内容的站点,容易出现机器不可见的情况。如:

电商网站,商户下线了某个不再售卖的产品

团购网站,商户下线了某个不再优惠的活动

招聘网站,公司下线了某个不再招聘的职位

B2B网站,厂商下线了某个不再批发的产品

...............

当用户下线的某个产品/职位/活动,对应的前端页面,一般会有3种状态:

a、产品下线后,对应页面立马404状态

假如下线产品对应的页面,刚好在搜索引擎的待抓取列表中,当搜索引擎访问时,必然出现机器不可见的情况,因为是死链。所以SEO需要找技术定期(至少每天)索取下线产品对应的链接,及时提交死链给搜索引擎,规避惩罚风险

b、产品下线后,对应页面301到首页,或上级页面,或其他什么的页面

c、产品下线后,对应页面仍然200状态,页面上添加下线状态的标识

已经下线的产品,比如是电商网站某个不再售卖的产品,该页面对用户来讲,已经毫无价值,但前端仍是200状态,让搜索引擎消耗资源去抓取,所以站在搜索引擎的立场,并不友好。

具体的处理方式,SEO首先要去了解产品对于下线产品的处理逻辑,再根据实际情况来定夺,比如:

a、已下线的产品,若历史流量比价多,全都404显然是非常坑SEO的做法,是否需要有流量的200状态,没流量的都404

b、若产品被用户发布,然后下线后,之后还可以恢复上线。那发布和恢复上线时的url是不是一样的?若一样怎么处理,不一样怎么处理?

总之,需要根据实际情况,在用户感受、搜索引擎友好、SEO流量三者中做一个平衡。

2)需要访问权限才能查看的内容

若针对用户及搜索引擎,都设置访问权限,比如需要登陆之后才能看到正文,无疑对SEO影响巨大,爬虫无法执行人的登陆行为

一般可以披露部分内容,隐藏部分内容来处理,或者针对爬虫披露全部内容,针对用户隐藏内容

3)触发反爬虫策略,返回空页面或假页面

运维没有将搜索引擎加到白名单,搜索引擎被误判为“坏人”,触发反爬虫策略,返回空白页面。

更坑的是返回假数据,比如从100条预先准备的数据中,随机抽取一条返回给爬虫,爬虫抓了几万页面,实际上数据就那100条,对SEO造成严重影响。

从而引申出一条,SEO需要时刻跟运维保持同步,时刻了解最新的反爬虫措施,是否存在误伤搜索引擎的可能

4)POST请求

通过post请求返回的数据,常出现于多条件筛选框,如肯德基的门店内容:kfc.com.cn/kfccda/store

用户执行某个行为(点击按钮、输入字符串等),js获取到这个行为后,通过post方式请求web service,在当前已打开的页面中展示返回的数据,而不是在新标签页中显示数据,所以url是不变的。

爬虫无法模拟人的行为,自然也看不到数据。

解决办法:

a、通常用三方浏览器内核,遍历加载这批需要post的页面,将浏览器渲染后的网页,生成一个个静态页。之后web service判断来访用户,若为搜索引擎,则将post按钮(href="javascript:void(0);")替换为静态页面的链接(href="{静态页链接}")

b、如果post网页太多,技术一般不愿意按a的方式搞,因为一个模块得维护两套代码,麻烦。所以一般搞一套新页面,来承载这批post页面对应的关键词流量

5)服务器响应慢,导致内容没抓全

爬虫抓取网页,等待数据返回的时间是有限的,有timeout的。可访问做的不到位的网站,经常出现爬虫来不及抓取全部内容的情况,特征是快照中只存留网页部分内容,另外一部分没抓到,当时爬虫抓取的时候,超时了

6)iframe/ajax,不解释,ajax见上面的post部分,原理差不多

7)通过图片/flash来承载内容,爬虫无法理解图片和视频中包含的信息

--->搞基Q群:


文章版权及转载声明:

作者:GoGo闯本文地址:https://www.gogochuang.com/post/64.html发布于 3个月前 ( 05-11 )
文章转载或复制请以超链接形式并注明出处GoGo闯SEO

发表评论

快捷回复:

评论列表 (暂无评论,275人围观)参与讨论

还没有评论,来说两句吧...