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

本文介绍了使用Scrapy框架制作爬虫的四个基本步骤:新建项目、生成爬虫、定义目标数据和制作爬虫。详细讲解了items.py、getmovies.py和pipelines.py文件的作用,以及Scrapy的设置、中间件和命令操作。通过这些步骤,你可以学会如何创建、运行和管理Scrapy爬虫。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

制作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 执行具体一个爬虫进行爬取并处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值