Twitter技术问题导致抓取和URL规范化问题

作者:化龙哥
围观群众:17
更新于

今日见到SEL上Vanessa Fox的一篇文章,表述了为何Twitter的一些技术性出错造成 Google爬取、URL规范性、PR测算等一系列难题,很非常值得一读,因此 大概翻译一下供阅读者参照。

为何并不是Google的不正确,Google却那么放在心上,升级了PR呢?猜想缘故有二,一是不管一切状况下Twitter主页PR为零,大伙儿肯定是说Google有什么问题,而不是Twitter有什么问题,尽管实际上的确是Twitter自身导致的。二是,在Google 发布的另外,Google与Twitter协作合同到期了,不可以立即根据API抓数据信息了,此刻Twitter PR降至零,大伙儿也许内心会嘟囔,这Google简直过去了河立刻就拆桥啊,Google不愿被这一背黑锅。

大破冲霄楼。

Google一位新闻发言人回应SEL有关Twitter PR时表示:

近期Twitter持续改动他们的robots.txt文件和HTTP头信息内容,玩得太很欢了,临时导致Google优化算法解决Twitter时的URL规范性难题。如今规范性难题类似解决了,因此 大家升级了工具栏PR以体现最新数据。Twitter在Google数据库索引杜兰特一直有很高PR,沒有处罚。

因此 Vanessa Fox科学研究了一下Twitter究竟有哪些robots文件、网络服务器头信息内容、URL规范性难题。简直不要看不清楚,一看吓一跳。顺带提一下,Vanessa Fox是前Google职工,承担网管工具webmaster tools的。

察觉到这篇贴子会较为长,刚刚刚开始就那么长了…

Vanessa Fox搜过一下自身姓名“Vanessa Fox”,結果如下图:

有URL,但没题目,没表明,也就是实际上没爬取,仅仅一部分数据库索引。

立即搜Vanessa Fox自身Twitter网页页面URL的結果是:

为何出現了英文大写?URL最终面哪个点(.)也是什么东西?究竟是怎么回事呢?

先讨论一下Twitter的robots.txt文件

twitter.com和www.twitter.com的robots.txt文件竟然是不一样的。twitter.com/robots.txt是那样的:

#Google Search Engine Robot

User-agent: Googlebot

# Crawl-delay: 10 — Googlebot ignores crawl-delay ftl

Allow: /*?*_escaped_fragment_

Disallow: /*?

Disallow: /*/with_friends

#Yahoo! Search Engine Robot

User-Agent: Slurp

Crawl-delay: 1

Disallow: /*?

Disallow: /*/with_friends

#Microsoft Search Engine Robot

User-Agent: msnbot

Disallow: /*?

Disallow: /*/with_friends

# Every bot that might possibly read and respect this file.

User-agent: *

Disallow: /*?

Disallow: /*/with_friends

Disallow: /oauth

Disallow: /1/oauth

www.twitter.com/robots.txt是那样的:

User-agent: *

Disallow: /

换句话说:

Twitter技术问题导致抓取和URL规范化问题

一些状况下,带与没有www的2个版本号內容可能是不一样的。

Twitter好像为了更好地标准和网站地址,严禁百度搜索引擎爬取www版本号。

Twitter技术问题导致抓取和URL规范化问题

因此 尽管www版本号干了301转向到没有www的版本号,但Twitter严禁百度搜索引擎抓www版本号,因此 百度搜索引擎搜索引擎蜘蛛看不见哪个301啊。餐具啊。

连向Twitter的连接有些是链到www版本号,有些是没有www的版本号,即然www版本号严禁爬取,看不见301,连接权重值不可以传送,消耗了。

因此 在第一个抓屏里见到回到的是带www的版本号,很有可能缘故是这一版本号外部链接比较多,但Twitter严禁爬取,因此 仅仅一部分数据库索引(也就是仅有一些来源于连接的数据信息,沒有网页页面自身的內容)。

再讨论一下302转为

查一下twitter.com/vanessafox这一URL头信息内容,竟然回到302转为到twitter.com/#!/vanessafox。为什么说“竟然”呢?请参照301转向和302转为的差别。因为用的是302,权重值沒有转到twitter.com/#!/vanessafox

而www.twitter.com/vanessafox干了301到twitter.com/vanessafox,自然,缘故www版本号被屏蔽,连接权重值也传送不回来。为什么不从www.twitter.com/vanessafox立即301到twitter.com/#!/vanessafox(这才算是Twitter要想的规范性版本号)呢?即使要做2次转为,也必须用301嘛,也不可以屏蔽掉www版本号嘛。

再讨论一下Twitter用意的AJAX爬取

Twitter要想的规范性URL是twitter.com/#!/vanessafox,在其中的#表明Twitter期待百度搜索引擎爬取网页页面AJAX內容。(这儿技术性难题非常复杂,就无需多言了,将要出版发行的《SEO艺术》关于AJAX內容和#标记应用的表述,广告宣传一下,呵呵呵)。

但是因为一系列繁杂的转为,很有可能导致了难题:

Google爬取没有www带#!的URL(twitter.com/#!/vanessafox),随后被转为到twitter.com/_escaped_fragment_/vanessafox

随后Google又被301转向到带www没有#!的版本号www.twitter.com/vanessafox

而客户浏览时JS将客户又转返回带#!的版本号

读了到这儿时大脑早已较为凌乱了,总而言之,Twitter弄了一堆转为,目地是让twitter.com/vanessafox这一看见看见干净整洁的版本号出現在百度搜索中,但客户点一下后又被转至twitter.com/#!/vanessafox。弄那么繁杂干什么呢,越繁杂越非常容易失败啊。

Rate Limiting又是什么呢

Twitter网页页面头信息内容里有一个rate limiting一部分:

HTTP/1.1 200 OK

Date: Mon, 18 Jul 2011 20:48:44 GMT

Server: hi

Status: 200 OK

X-Transaction: 1311022124-32783-45463

X-RateLimit-Limit: 1000

这一limiting又limit(限定)了什么?Vanessa Fox不清楚,我也更不知道,之前没见过这一主要参数。但limit这个词预示着是限定了哪些和速率相关的物品,如果指爬取速率就惨了。

URL中的英文大小写

最终,如第二个抓屏显示信息的,URL中出現英文大小写,这种全是不一样URL,又会导致网站地址规范性、PR/权重值分散化、拷贝內容这些难题。

总算到末尾了。总而言之,这类技术性难题在许多 商业网站是经常会出现的,看起来小问题,实际上很有可能造成 严重危害。

文中来源于:电脑技术吧[http://www.]

非特殊说明,本文版权归 金科常识网 所有,转载请注明出处.

本文分类: 历史

本文标题: Twitter技术问题导致抓取和URL规范化问题

本文网址: http://sddljzx.com/lishi/4356.html

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。