Scrapy框架----爬虫读书笔记

制作Scrapy爬虫,最基础的需要四步:

  1. 新建项目
    scrapy startproject Movies 
    自动生成一个名为“Movies”的爬虫项目
    scrapy genspider getmovies movie.douban.com
    自动生成一个名为“getmovies”的爬虫
    整个项目目录结构如下:
        
  2. 定义目标数据
    编辑items.py文件,定义需要获取数据的结构,该结构操作类似字典操作
import scrapy

class MoviesItem(scrapy.Item):
    UserName = scrapy.Field()
    UserID = scrapy.Field()
    MovieName = scrapy.Field()
    MovieID = scrapy.Field()
    MovieScore = scrapy.Field()
    MovieComment = scrapy.Field()

3. 制作爬虫

编辑getmovies.py文件,定义了一个爬虫类(默认继承于scrapy.Spider基类)
name:爬虫名称,用于识别项目内的不同爬虫,可用scrapy list 获取整个项目爬虫名列表
allowed_domains:爬虫允许的域范围,超过域范围的数据不再抓取
start_urls:列表数据,开始抓取的URL地址

parse方法:解析每次抓取数据结果(在该方法内实现爬虫数据的解析工作,如果是多层爬取,该方法还将产生下级爬取URL)

import scrapy

class GetmoviesSpider(scrapy.Spider):
    name = 'getmovies'
    allowed_domains = ['movie.douban.com']
    start_urls = ['http://movie.douban.com/']

    def parse(self, response):
        pass

parse方法中必须返回item给管道,可以用yield item将parse变成生成器


4. 存储数据

编辑pipelines.py文件,用方法process_item处理每个解析后的item数据,可以存入数据库,也可以存入文件

class MoviesPipeline(object):
    def process_item(self, item, spider):
        return item

关于scrapy的其他事项:

1. 设置

编辑settings.py文件,可以修改默认爬虫设置
USER_AGENT='所有爬虫发出请求的user_agent'
ROBOTSTXT_OBEY='爬虫是否遵循网站爬虫协议robots.txt规定';建议关闭
CONCURRENT_REQUESTS='请求并发数'
DOWNLOAD_DELAY='下载延迟(秒)'
COOKIES_ENABLED='是否禁用Cookie'
DEFAULT_REQUEST_HEADERS='默认请求报头'
SPIDER_MIDDLEWARES='爬虫中间件,所有定义的爬虫中间件都必须在此注册启用才有效,值大小范围0-1000,越小优先级越高'
DOWNLOADER_MIDDLEWARES='下载中间件'

ITEM_PIPELINES='管道文件,必须启用管道才能有效'

2. 中间件

编辑middlewares.py文件,可以为项目添加中间件

3. 命令操作


常用的:
scrapy list获取爬虫列表
scrapy shell用于进入shell来测试爬取结果,验证解析
scrapy crawl getmovies 执行具体一个爬虫进行爬取并处理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章