第六周——爬虫入门 Day3 8.3

学习时间:9:00——11:30        14:30——16:30

scrapy框架

—什么是框架?
一就是一个集成了很多功能并且具有很强通用性的一个项目模板。

—如何学习框架?
一专门学习框架封装的各种功能的详细用法。

—什么是scrapy?.
—爬虫中封装好的一个明星框架。功能:高性能的持久化存储,异步的数据下载,高性能的数据解析,分布式

scrapy基本使用:

1.创建一个工程:终端输入:scrapy startproject xxxPro(自定义工程名)

2. 定位到当前工程目录:终端输入:cd  xxxPro

3.在spiders子目录创建一个爬虫文件:终端输入:scrapy genspider 文件名(自定义)起始url(随便写,以后可改)

4.执行工程:终端输入:scrapy crawl 文件名

以下是新建爬虫文件的源代码:

import scrapy


class FirstSpider(scrapy.Spider):
    #爬虫文件名:爬虫源文件的唯一标识
    name = 'first'
    #允许的域名:用来限定start_urls列表中哪些url可以进行请求发送
    # allowed_domains = ['www.xxx.com']

    #起始的url列表:该列表中存放的url会被scrapy自动进行请求的发送
    start_urls = ['https://www.baidu.com/','https://www.sogou.com']

    #用作于数据解析:response参数就表示请求成功后对应的响应对象
    def parse(self, response):
        print(response)

settings文件要做的调整

—scrapy数据解析

—scrapy持久化存储
     一基于终端指令:
         —要求:只可以将parse方法的返回值存储到本地的文本文件中
         —注意:持久化存储对应的文本文件的类型只可以为: 'json','jsonlines', 'jl','csv','xml'

        —指令:scrapy crawl  xxx  -o  filePath
        —好处:简介高效便捷
        一缺点:局限性比较强(数据只可以存储到指定后缀的文本文件中)
    一基于管道:
         一编码流程:
            一数据解析
            一在item类中定义相关的属性
            一将解析的数据封装存储到item类型的对象
            —将item类型的对象提交给管道进行持久化存储的操作
            —在管道类的process_item中要将其接受到的item对象中存储的数据进行持久化存储操作                一在配置文件中开启管道
        —好处:通用性强

实践——爬取壁纸网的壁纸名称

import scrapy


class FirstSpider(scrapy.Spider):
    #爬虫文件名:爬虫源文件的唯一标识
    name = 'first'
    #允许的域名:用来限定start_urls列表中哪些url可以进行请求发送
    # allowed_domains = ['www.xxx.com']

    #起始的url列表:该列表中存放的url会被scrapy自动进行请求的发送
    start_urls = ['https://pic.netbian.com/4kfengjing/']

    #用作于数据解析:response参数就表示请求成功后对应的响应对象
    def parse(self, response):
        li_list = response.xpath('//*[@id="main"]/div[3]/ul/li')
        for li in li_list:
            img_name = li.xpath('./a/b/text()').extract_first()
            print(img_name)

scrapy五大核心组件

引擎(Scrapy)
—用来处理整个系统的数据流处理,触发事务(框架核心)

调度器(Scheduler)
—用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回.可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是什么,同时去除重复的网址

下载器(Downloader)
—用于下载网页内容,并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)

爬虫(Spiders)
—爬虫是主要干活的,用于从特定的网页中提取自己需要的信息,即所谓的实体(item)。用户也可以从中提取出链接让Scrapy继续抓取下一个页面

项目管道(Pipeline)
—负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值