Skr-Eric的爬虫课堂(七)——爬虫的Scrapy框架

Scrapy框架

  1、定义

    异步处理框架,可配置和可扩展程度非常高,Python中使用最广泛的爬虫框架

  2、安装(Ubuntu)

    1、安装依赖库

      sudo apt-get install python3-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

    2、安装Scrapy

      sudo pip3 install Scrapy

    3、验证

      >>>import scrapy

    4、创建项目出现警告解决方案

      1、scrary startproject AAA

        "Warning : .... Cannot import OpenTpye ...."

        因为 pyasn1 版本过低,将其升级即可

        sudo pip3 install pyasn1 --upgrade

 

Scrapy框架五大组件

  1、引擎(Engine) :整个框架的核心

  2、调度器(Scheduler):接受从引擎发过来的URL,入队列

  3、下载器(Downloader):获取网页源码,返给爬虫程序

  4、下载器中间件(Downloader Middlewares)

     蜘蛛中间件(Spider Middlewares)

  5、项目管道(Item Pipeline) :数据处理

  6、Scrapy框架详细抓取流程

  7、制作Scrapy爬虫项目的步骤

  1、新建项目

    scrapy startproject 项目名

  2、明确目标(items.py)

  3、制作爬虫程序

    进入到spiders文件夹中,执行:

    scrapy genspider 文件名 "域名"

  4、处理数据(pipelines.py)

  5、配置settings.py

  6、运行爬虫程序

    scrapy crawl 爬虫名

 8、scrapy项目结构

  Baidu

  ├── Baidu :项目目录

  │   ├── __init__.py

  │   ├── items.py       :定义爬取数据结构

  │   ├── middlewares.py :下载器中间件和蜘蛛中间件

  │   ├── pipelines.py   :管道文件,处理数据

  │   ├── settings.py    :项目全局配置

  │   └── spiders        :文件夹,存放爬虫程序

  │       ├── baiduspider.py :爬虫程序/spider

  │       ├── __init__.py

  │       

  └── scrapy.cfg :项目基本配置文件,不用改

9、文件配置详解

  1、settings.py

    USER_AGENT = 'Baidu (+http://www.yourdomain.com)'

    # 是否遵循robots协议,改为False

    ROBOTSTXT_OBEY = False

    # 最大并发量,默认为16个

    CONCURRENT_REQUESTS = 6

    # 下载延迟时间

    DOWNLOAD_DELAY = 1

    # 请求报头

    DEFAULT_REQUEST_HEADERS = {

      'User-Agent':'Mozilla/5.0',

      'Accept':     'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

      'Accept-Language': 'en',

    }

    # 下载器中间件

    DOWNLOADER_MIDDLEWARES = {

       'Baidu.middlewares.BaiduDownloaderMiddleware': 543,

    }    

    # 项目管道,处理数据

    ITEM_PIPELINES = {

       'Baidu.pipelines.BaiduPipelineMySQL': 300,

       'Baidu.pipelines.BaiduPipelineMongo': 200,

    }

10、项目 :抓取百度首页源码,存到 百度.html中

  1、scrapy startproject Baidu

  2、cd Baidu/Baidu

  3、subl items.py(此步不用操作)

  4、cd spiders

  5、scrapy genspider baidu "www.baidu.com"

  6、subl baidu.py

    # 爬虫名

    # 域名        : 重点检查

    # start_urls  : 重点检查

    def parse(self,respose):

        with open("百度.html","w") as f:

    f.write(response.text)

  7、cd ../

  8、subl settings.py

    1、把robots改为False

    2、添加User-Agent

      DEFAULT_REQUEST_HEADERS = {

        'User-Agent','Mozilla/5.0',

... ...

      }

  9、cd spiders 运行 scrapy crawl baidu

 

 

 

想要看更多的课程请微信关注SkrEric的编程课堂

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值