01-scrapy框架(一)

一.csrapy的介绍

1.scrapy是什么?

异步爬虫框架

scrapy是一个基于python开发的爬虫框架,用于抓取网站并从其页面中提取结构化数据,也是当前python爬虫生态中最流行的爬虫框架,Scrapy框架架构清晰,可扩展性强,可以灵活高效的完成各种爬虫需求。

2.scrapy的优势

1.爬虫必备的技术
2.使爬虫程序效率更高 更稳定
3.配置和可扩展性强(灵活)

二.scrapy的安装

1.官网

官方学习网址:https://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html

最新的:https://docs.scrapy.org/en/latest/

2.安装

pip install scrapy==2.5.1 -i https://pypi.douban.com/simple

三.scrapy的工作流程

1.流程拟人化

请添加图片描述

2.scrapy工作流程图

请添加图片描述

3.各个组件功能介绍

1.引擎:核心 cpu 老板 控制着整个流程
2.调度器:从引擎发送过来的待发送的请求
3.爬虫程序:负责爬虫的解析处理
4.下载器:发送请求 获取相应
5.管道:保存数据
6.下载中间件:位于引擎和下载器中间 请求在正式发送出去之前需要经过的组件 通过整个下载中间件可以去添加一些请求头,或者用户代理
7.爬虫中间件:位于引擎和爬虫之间

四.scrapy爬虫的基本步骤

1.创建scrapy项目

1.如何在当前文件夹下新建?先求换到当前文件夹下
cmder里面切换路径
法1:直接找到day21 在地址栏上面cmder进去
法2:cd /d C:\Users\Hxs\17-scrapy框架
注意:windows跨盘符切换 加/d

2.创建项目

scrapy startproject myspider
scrapy startproject(固定命令)
myspider(不固定 我们自己起的名字)

3.进入项目下面

cd myspider

4.创建爬虫程序

scrapy genspider example example.com
scrapy genspider (固定的命令)
example:爬虫程序自己的名字(自己命名 不固定 起始就是py文件的名字)
example.com:可以运行爬取的范围(不固定) 根据外面的url来确定 重要

比如说我们的目标url:https://www.douban.com/
scrapy genspider db douban.com  # 此时在spider下面会多出一个db.py文件

五.项目文件介绍

1.爬虫程序文件

下面展示 db.py的代码

# 导入
import scrapy

# 我们生成的类都会继承scrapy.Spider这个类
class DbSpider(scrapy.Spider):
    # 爬虫程序的名字 必须唯一
    name = 'db'
    # 可以爬取的范围 只能爬取该域名下的网页 不存在会忽略 可以修改
    allowed_domains = ['douban.com']
    # 起始url 因为是自动生成的 一般需要手动修改
    # 爬虫会从这里开始抓取数据
    start_urls = ['https://www.douban.com/']

    # 解析数据
    def parse(self, response, **kwargs):
        # response 是已经发送请求之后得到的相应对象
        # 为什么会高亮 少写了一个形参  **kwargs 不加上也不影响
        '''
        主要作用:解析返回的网页数据 提取数据 可以提取出新的需要请求的url
        :param response:
        :return:
        '''
        print(response.text)  # 获取到的是网页源代码
        pass

2.init文件

init.py的作用时将文件夹变成一个py模块 如果没有init文件 这个目录只是一个目录 不是一个包 就不能被导入或者包含别的模块

3. 启动程序

方法1 命令启动

scrapy crawl db (爬虫程序的名字)

方法2 文件启动
在当前项目下新建一个run.py(注意是在项目下)

from scrapy import cmdline

scrapy.execute('scrapy crawl db'.split())

4. 注意:红色的不是保存 是运行日志

#设置日志等级(在setting.py中)

LOG_LEVEL = 'WARNING'

#因为我们的日志是debug级别的 当我们设置成警告之后 低于警告的就不会显示 就相当于关闭了日志

#DEBUG WARNING ERROR
#不建议关闭日志 可以根据日志信息查错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值