scrapy爬虫入门学习笔记(一)
scrapy的安装很简单,网上有大量相关的教程,自行搜索。
1.scrapy框架
- 引擎(scrapy engine)
处理系统的数据流,触发事件
- 调度器(scheduler)
接受引擎发来的请求,压入队列,并在引擎再次请求时返回。可以想象成一个URL的优先队列,由它决定下一个抓取的网址是什么,并进行去重。
- 下载器(downloader)
用于下载网页内容,并返回给spider,下载器建立于twisted这个高效的异步模型之上
- 爬虫(spiders)
从特定网页爬取自己想要的信息,即item,提交给引擎
- 管道(pipeline)
处理从网页中提取的item,对信息进行存储、写等处理
- 下载中间件(downloader middlewares)
处理引擎和下载器之间的请求和响应
- 爬虫中间件(spider middlewares)
处理spider的响应输入和请求输出
- 调度中间件(scheduler middlewares)
对引擎的请求进行调度处理
2.scrapy项目文档目录
tree
- scrapy.cfg:项目的配置文件
- items.py:项目的目标文件。
- pipelines.py:项目的管道文件,作用就一个,处理item字段
- settings.py:项目的设置文件
- spiders:存储爬虫代码目录
items.py
- 定义结构化的字段,用于保存爬取到的数据,类似于python中的字典,但提供了额外的保护防止错误。
- 创建一个scrapy.Item类,定义类型为scrapy.Field的类属性来定义一个Item
- 创建一个ITcastItem类,构建Item模型
import scrapy
class ItcastItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
name=scrapy.Field()
# l老师的职称
title=scrapy.Field()
# 老师信息
info=scrapy.Field()
# pass
itcast.py
- 爬虫python文件
- 定义一个ITcastSpider类,继承自scrapy.spider
- 需要name、start_urlds和parse
- parse函数中的xpath是xml文档查找信息的语言,可用于对xml元素和属性值进行遍历
class ItcastSpider(scrapy.Spider):
# 爬虫名,启动爬虫时需要的必须参数
name = 'itcast'