网站流量提升核心 网页抓取深度解析

  一、蜘蛛

  互联网信息爆发式增长,如何有效的获取并利用这些信息是搜索引擎工作中的首要环节。数据抓取系统作为整个搜索系统中的上游,主要负责互联网信息的搜集、保存、更新环节,它像蜘蛛一样在网络间爬来爬去,因此通常会被叫做“spider”。

  二、常用的搜索引擎蜘蛛名

  ① 百度 ?Baiduspdier

  ② 谷歌 ?Googlebot

  ③ 搜狗 ?Sogou Web Spider

  以上只是搜索引擎蜘蛛的简称,全称即我们常见的UA。例如Baiduspdier的全称是Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)。这个对于搜索引擎来说是搜索引擎蜘蛛的全称,而对于浏览器来说是UA。

  PC版的UA和移动版的UA区别在于,移动版的UA中有Android、ios、Mobile等,例如Baiduspdier的移动版全称是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)。

  三、关于spider抓取

  如下图,蜘蛛网可以看做是互联网,蜘蛛可以看做是Baiduspider。蜘蛛通过网页的链接地址来寻找网页,从网站某一个页面开始,找到在网页中的其它链接入口,然后通过这些链接寻找下一个网页,这样一直循环下去。一个页面可以放置其他网站的链接入口,通过添加友情链接是的蜘蛛网覆盖面变得十分广阔。

  从下图可以看出,蜘蛛最容易到达的点是中间那个点,因为它的链接最多(即链到这个页面的入口最多),因此最容易被发现;而最不容易到达的点是边上的点,因为它的链接少,不太容易被发现。

  从以上说的,可以总结出比较重要的两点:

  ① 网站需要建立链接才能被蜘蛛发现,即做出的页面至少要有一个入口,蜘蛛才能到达发现;

  ② 指向某一页面的链接越多越容易被蜘蛛发现。

  四、域名和IP的关系

  每个域名都有相对应的一个IP(即主机服务器)。可能存在一个域名对多个IP(很多大网站),或多个域名对应同一个IP(小网站共享IP)的问题。

  五、关于蜘蛛抓取操作过程

  蜘蛛抓取过程可分为在线和离线。在线状态,蜘蛛就会去抓取链接页面,然后下载其源码。离线状态就会分析该页面是否有价值等。

  假如一个页面已经被蜘蛛抓取了但未被收录,可能的原因是:内容不好、页面返回错误代码、页面空白等。

  六、广度和深度

  广度:是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。

  深度:是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络蜘蛛在设计的时候比较容易。

但是在蜘蛛进行抓取的时候会根据实际情况结合使用抓取策略以达到最优的抓取效果,就广度和深度而言,广度要比深度好,因为蜘蛛不愿往里转。因此重要的页面要放在“点击距离”最近的地方。

  七、常见的状态码

  ① 200 代表页面完整正常。

  ② 301/302 永久/临时性跳转,区别在于301可以传递权重,而302不可以。如果旧的页面已经积累了一定的权重,若要更换URL,则需要做301跳转,而一个新的页面(几乎没有权重)则不需要做301跳转。

  ③ 404 认为网页已经失效,通常将在库中删除,同时短期内如果spider再次发现这条URL也不会抓取。这是我方主动做的事,站长不希望有些页面被收录而主动设置的,并非是这个页面错误或丢失才返回404。

  ④ 503 认为网页临时不可访问,通常网站临时关闭,带宽有限等会产生这种情况。对于网页返回503状态码,百度spider不会把这条url直接删除,同时短期内将会反复访问几次,如果网页已恢复,则正常抓取;如果继续返回503,那么这条url仍会被认为是失效链接,从库中删除。50开头的状态码均是关于服务器的问题。

  ⑤ 403 认为网页目前禁止访问。如果是新url,spider暂时不抓取,短期内同样会反复访问几次;如果是已收录url,不会直接删除,短期内同样反复访问几次。如果网页正常访问,则正常抓取;如果仍然禁止访问,那么这条url也会被认为是失效链接,从库中删除。

  八、关于重复URL的问题

  即不同的URL指向相同的内容,这样可能会被百度判为作弊,因此要避免重复URL的问题,做页面差异化。

  九、关于数据挖掘

  互联网中存在着大量的搜索引擎暂时无法抓取到的数据,被称为深度数据。一方面,很多网站的大量数据是存在于网络数据库中,spider难以采用抓取网页的方式获得完整内容;另一方面,由于网络环境、网站本身不符合规范、页面无入口等等问题,也会造成搜索引擎无法抓取。