python菜鸟解决SEO问题系列(二)- 认识scrapy

做SEO分析,很多的时候是在做两件事,一个是采集数据,一个是分析数据,无论你要发外链采集外链资源,还是要看日志,了解蜘蛛动向都离不开这两点。
在python里,有一个很强大的开源框架 – Scrapy,我们接下来用这个框架来处理抓取任务。

首先是安装,安装步骤这个讲的挺清楚的,直接参考这个:http://www.cnblogs.com/txw1958/archive/2012/07/12/scrapy_installation_introduce.html

我在windows下安装时,在安装lxml时遇到个问题,会提示“

ERROR: ‘xslt-config’ is not recognized as an internal or external command, operable program or batch file.”
的错误。这个应该是和下载的版本有关,我的是2.7.2版本的。
只要使用 python ez_setup.py -U lxml=2.3 在线自动安装就可以了。
scrapy安装的疑难杂症基本百度都有,其实按步骤装也没什么难的。
安装好后,我们先做个测试,在CMD里,cd到我们在eric里设置的工作目录下,然后执行:scrapy startproject seotest

系统就会自动在目录下生成一个seotest的scrapy项目。


这个项目里有几个文件,我们暂时先不去管它,先看下scrapy怎么使用。

我们打开eric,先在spiders的目录下建立一个文件 baidu.py
代码如下:

我解释一下:
第一行是引用,告诉系统,我要引用一个BaseSpider了
下面一个class BaiduSpider(BaseSpider): 叫类名,我们说过python是以tab缩进作为段落控制的,下面的代码都属于这个类,这个名字不用纠结,随便定义的,你叫GoogleSpider也无所谓。
name = “baidu” 这个要注意了,很重要,是指蜘蛛的名字,我们在调用爬虫时,就是使用这个名字。
start_urls = [
“http://www.baidu.com/s?wd=catwell”
]

这里存放的是URL列表,也就是要抓取的URL地址。

def parse(self, response):
filename = “catwell.txt”
open(filename, ‘wb’).write(response.body)

parse是一个方法,用来做具体的事。

在里面,我定义了一个 catwell.txt的文件 用来把采集下来的内容放在里面。

open(filename, ‘wb’) 就是用二进制可写的方式打开filename这个文件,后面的.write(内容)方法就把值写进文件里。

response.body 就是采集下来的页面内容。

是不是很简单。几句代码,一个页面采集下来了。

怎么用呢? 很简单 在CMD里,先进入到这个项目的目录下,然后执行 scrapy crawl baidu 就可以了。这个baidu 就是我们前面定义的蜘蛛名字。
执行后,你看看是不是项目的目录下多了一个 catwell.txt的文件,里面的内容就是百度首页的代码。



无觅相关文章插件,快速提升流量

标签:

实在不堪垃圾评论的骚扰,还是禁止了吧,有事微博联系吧。