搜索引擎收集网页其实就是用程序来下载网页的源代码,下载代码本身并不复杂(搜索引擎工作的难点在于高查全率、高查准率和较短的响应时间),用Python的话,几行代码就可以完成,代码如下: import urllib html=urllib.urlopen("下载代码的URL").read(),html就是返回的网页源代码(在这里不考虑乱码的问题)。
搜索引擎在抓取网页的时候一般都会亮明身份,在网站的日志中可以看到,我们也可以模拟一个搜索引擎的蜘蛛去获取网页的源代码,这需要 构建一个头部信息,User-Agent就是模拟的蜘蛛,以百度为例: headers={
'Host':'这里写主机名,一般以URL代替',
'User-Agent':'Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html)',
'Referer':'写URL即可'
}
这时获取源代码就不能使用urllib模块了,需要导入urllib2模块:import urllib2,然后用urllib2的Request方法获取网页源代码: req=urllib2.Request(url=目标URL,headers=headers)
html=urllib2.urlopen(req).read()
模拟搜索引擎蜘蛛跟SEO有什么关系呢?模拟蜘蛛获取到的源代码是SEOer最关心的,因为这样的网页才是搜索引擎收录、进行相关排序的,有时候一些站长会通过判断来路,为搜索引擎和用户返回不同的网页,SEO如果不仔细的话,交换友情链接会吃亏。在chinaz 的工具里有模拟搜索引擎蜘蛛的,对程序不熟的,可以利用它的工具。
模拟搜索引擎蛛蛛另一个用在SEO方面是采集、挖掘网站数据用。网络上有大量的数据,搜索引擎是抓取不到的(如JS调用等),我们可以利用程序去抓取,但现在很多网站都采取了防采集措施,如频繁访问会被封IP等,但他们对搜索引擎是完全开放的,我们可以利用这一点,模拟蜘蛛去挖掘网站内容,我就用这种方法采集过国内某著名网站的内容。
|