您的位置:首页 > 其它

5.基本概念介绍-scrapy的重要组件

2016-05-29 13:48 218 查看

Spider

基本介绍:

概念:是一个类,它定义了怎样爬取网站,包括怎样跟踪链接、怎样提取数据;

循环执行流程:

1. 通过初始的url产生request

2. 解析response

3. 使用selector

4. 存储到Item

基类(scrapy.Spider)介绍:

属性:

name:spider的名称,要求唯一;

allowed_domains:允许的域名;

start_urls:初始urls;

custom_settings:个性化设置,会覆盖全局的设置;

crawler:抓取器,spider将绑定到它上面;

setting:配置实例,包含工程中所有的配置变量;

logger:日志实例

方法:

from_crawler(crawler, *args,**kwargs): 类方法,用于创建spiders;

start_requests():生成初始的requests;

make_request_from_url(url):根据url生成一个request;

parse(response):用来解析网页内容;

log(message[, level,component]):用来记录日志,这里请使用logger属性记录日志(该方法是为了兼容旧版本的日志模块);

eg:self.logger.info(“visted success”);

closed(reason):当spider关闭的时候调用的方法;

子类介绍:

CrawlSpider:

最常用的spider,用于抓取普通的网页;

增加两个成员;

1)rules:定义一些抓取规则–连接怎么跟踪、使用哪一个parse函数解析此链接;

2)parse_start_url(response):解析初始化url的相应的parse;

3)实例,文档36页;

XMLFeedSpider:解析XML文件

CSVFeedSpider:解析CSV文件

SitemapSpider:解析sitemap类型的页面

Selector

概念:网页内容抽取器(抽取网页内容有很多方法,比如beautifulsoup、lxml,但是scrapy里面默认使用的是selector,相对来说也是最好用的。)

实例化:(文档41页)

1.用text

>>> from scrapy.selector import Selector
>>> from scrapy.http import HtmlResponse

>>> body = '<html><body><span>good</span></body></html>'
>>>Selector(text=body).xpath('//span/text()').extract()
[u'good']


2.用response

>>> response = HtmlResponse(url='http://example.com', body=body)
>>>Selector(response=response).xpath('//span/text()').extract()
[u'good']


常用抽取方法

xpath

css

re

extract

Item

Item Pipeline

Feed Export(数据存储方式)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: