Python爬虫教程-30-Scrapy 爬虫框架介绍

从本篇开始学习 Scrapy 爬虫框架

Python爬虫教程-30-Scrapy 爬虫框架介绍

  • 框架:框架就是对于相同的相似的部分,代码做到不出错,而我们就可以将注意力放到我们自己的部分了
  • 常见爬虫框架:
    • scrapy
    • pyspider
    • crawley
  • Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中
  • Scrapy 官方文档

Scrapy 的安装

  • 可以直接在 Pycharm 进行安装

    • 【PyCharm】>【file】>【settings】>【Project Interpreter】>【+】 >【scrapy】>【install】
    • 具体操作截图:

  • 点击左下角 install 静静等待

测试 Scrapy 是否安装成功

  • 进入当前所在的环境
  • 输入 scrapy 命令
  • 截图:

  • 这里就说明安装成功l

Scrapy 概述

  • 包含各个部件

    • ScrapyEngine:神经中枢,大脑,核心
    • Scheduler 调度器:负责处理请求,引擎发来的 request 请求,调度器需要处理,然后交换引擎
    • Downloader 下载器:把引擎发来的 requests 发出请求,得到 response
    • Spider 爬虫:负责把下载器得到的网页/结果进行分解,分解成数据 + 链接
    • ItemPipeline 管道:详细处理 Item
    • DownloaderMiddleware 下载中间件:自定义下载的功能扩展组件
    • SpiderMiddleware 爬虫中间件:对 spider 进行功能扩展
  • 数据流图:

  • 绿色箭头是数据的流向
  • 由 Spider 开始 Requests, Requests, Responses, Items

爬虫项目大致流程

  • 1.新建项目:scrapy startproject xxx项目名
  • 2.明确需要爬取的目标/产品:编写 item.py
  • 3.制作爬虫:地址 spider/xxspider.py 负责分解,提取下载的数据
  • 4.存储内容:pipelines.py

模块介绍

  • ItemPipeline

    • 对应 pipelines 文件
    • 爬虫提取出数据存入 item 后,item 中保存的数据需要进一步处理,比如清洗,去虫,存储等
    • Pipeline 需要处理 process_item 函数
    • process_item
      • spider 提取出来的 item 作为参数传入,同时传入的还有 spider
      • 此方法必须实现
      • 必须返回一个 Item 对象,被丢弃的 item 不会被之后的 pipeline
  • _ init _:构造函数
    • 进行一些必要的参数初始化
  • open_spider(spider):
    • spider 对象对开启的时候调用
  • close_spider(spider):
    • 当 spider 对象被关闭的时候调用
  • Spider
    • 对应的是文件夹 spider 下的文件
    • _ init _:初始化爬虫名称,start _urls 列表
    • start_requests:生成 Requests 对象交给 Scrapy 下载并返回 response
    • parse:根据返回的 response 解析出相应的 item,item 自动进入 pipeline:如果需要,解析 url,url自动交给 requests 模块,一直循环下去
    • start_requests:此方法尽能被调用一次,读取 start _urls 内容并启动循环过程
    • name:设置爬虫名称
    • start_urls:设置开始第一批爬取的 url
    • allow_domains:spider 允许去爬的域名列表
    • start_request(self):只被调用一次
    • parse:检测编码
    • log:日志记录

中间件(DownloaderMiddlewares)

  • 什么是中间件?
  • 中间件是处于引擎和下载器中间的一层组件,可以有多个
  • 参照上面的流程图,我们把中间件理解成成一个通道,简单说,就是在请求/响应等传输的时候,在过程中设一个检查哨,例如:
    • 1.身份的伪装: UserAgent,我们伪装身份,不是在开始请求的时候就设置好,而是在请求的过程中,设置中间件,当检测到发送请求的时候,拦下请求头,修改 UserAgent 值
    • 2.筛选响应数据:我们最开始得到的数据,是整个页面,假设某个操作,需要我们过滤掉所有图片,我们就可以在响应的过程中,设置一个中间件
    • 比较抽象,可能不是很好理解,但是过程是其实很简单的
  • 在 middlewares 文件中
  • 需要在 settings 中设置以是生效
  • 一般一个中间件完成一项功能
  • 必须实现以下一个或者多个方法
    • process_request (self, request, spider)

      • 在请求的过程中被调用
      • 必须返回 None 或 Response 或 Request 或 raise IgnoreRequest
        • 如果返回 None:scrapy 将继续处理 request
        • 如果返回 Request:scrapy 会停止调用 process_request 并冲洗调度返回的 request
        • 如果返回 Response:scrapy 将不会调用其他的 process_request 或者 process _exception,直接将该 response 作为结果返回,同时会调用 process _response
    • process_response (self, request, spider)
    • 每次返回结果的时候自动调用
  • 下一篇链接:Python爬虫教程-31-创建 Scrapy 爬虫框架项目
  • 拜拜

  • 本笔记不允许任何个人和组织转载

原文地址:https://www.cnblogs.com/xpwi/p/9601034.html

时间: 2024-11-04 21:05:37

Python爬虫教程-30-Scrapy 爬虫框架介绍的相关文章

Scrapy爬虫框架的学习

第一步安装 首先得安装它,我使用的pip安装的 因为我电脑上面安装了两个python,一个是python2.x,一个是python3.x,所以为了区分,所以,在cmd中,我就使用命令:python2 -m pip install Scrapy  (注意我这里使用python2的原因是我给2个python重命名了一下) 安装之后,输入scrapy,出现如下图这样子的信息,表示成功安装了 如果有错误,可以参考一下:http://www.cnblogs.com/angelgril/p/7511741.

Python快速教程

Python快速教程 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 怎么能快速地掌握Python?这是和朋友闲聊时谈起的问题. Python包含的内容很多,加上各种标准库.拓展库,乱花渐欲迷人眼.我一直希望写一个快速的.容易上手的Python教程,而且言语简洁,循序渐进,让没有背景的读者也可以从基础开始学习.我将在每一篇中专注于一个小的概念,希望在闲暇时可以很快读完. 小提醒 教程将专注于Python基础,语法基于Pytho

Python爬虫教程-31-创建 Scrapy 爬虫框架项目

本篇是介绍在 Anaconda 环境下,创建 Scrapy 爬虫框架项目的步骤,且介绍比较详细 Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Anaconda 下载地址:https://www.anaconda.com/download/ Scrapy 爬虫框架项目的创建 0.打开[cmd] 1.进入你要使用的 Anaconda 环境 1.环境名可以在[Pycharm]的[Se

Python爬虫教程-32-Scrapy 爬虫框架项目 Settings.py 介绍

本篇介绍项目开发的过程中,对 Setting 文件的配置和使用 Python爬虫教程-32-Scrapy 爬虫框架项目 Settings.py 介绍 settings.py 文件的使用 想要详细查看 settings.py文件的更多内容,可查看中文文档: https://scrapy-chs.readthedocs.io/zh_CN/latest/topics/settings.html Settings 中配置 USER_AGENTS 在 settings.py 文件中很多东西默认是给注释掉的

Python之Scrapy爬虫框架安装及简单使用

题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫. 本文档将

零基础写python爬虫之使用Scrapy框架编写爬虫

网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便.使用Scrapy可以很方便的完成网上数据的采集工作,它为我们完成了大量的工作,而不需要自己费大力气去开发. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Item

Python 爬虫-Scrapy爬虫框架

2017-07-29 17:50:29 Scrapy是一个快速功能强大的网络爬虫框架. Scrapy不是一个函数功能库,而是一个爬虫框架.爬虫框架是实现爬虫功能的一个软件结构和功能组件集合.爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫.  一.Scrapy框架介绍 5+2结构,5个主要模块加2个中间件. (1)Engine:控制所有模块之间的数据流:根据条件触发事件.不需要用户修改 (2)Downloader:根据请求下载网页.不需要用户修改 (3)Scheduler:对所有爬取请求进行调

python爬虫—使用scrapy爬虫框架

问题1.使用scrapy框架,使用命令提示符pip命令下载scrapy后,却无法使用scrapy命令,出现scrapy不是内部或外部命令.也不是可运行的程序 解决:一开始,我是把python安装在D:\python,安装了scrapy后他默认都会装在此路径下,然后scrapy在路径D:\python\Scripts路径下,而创建工程也只能在此目录下. 如果想让他在dos下想要命令运行成功的话,就的需要知道他在那里,那么这又得学习到环境变量path的作用.所以这就得在path上添加scrapy的地

python爬虫----(5. scrapy框架,综合应用及其他)

在分析和处理选择内容时,还需注意页面的JS可能会修改DOM树结构. (一)GitHub的使用 由于之前使用Win,没使用过shell的.目前只是了解.以后再补充.找到几个不错的教程 GitHub超详细图文攻略 http://blog.csdn.net/vipzjyno1/article/details/22098621 Github修改提交 http://www.360doc.com/content/12/0602/16/2660674_215429880.shtml 以后再补充!!!!! (二