美文网首页
Scrapy 爬虫框架15分钟快速入门

Scrapy 爬虫框架15分钟快速入门

作者: 279d1d6d70b5 | 来源:发表于2018-03-16 16:02 被阅读10694次

    前言

    学Python已经有一段时间了,听说Python爬虫很强大。抽空学习了Scrapy框架。近一个月爬取了不下10万条的某某网站的数据。不能说精通Scrapy,但是已经对Scrapy有一定的熟悉。准备写一系列关于Scrapy爬虫的教程,一方面巩固自己的知识,另一方面帮助更多的人学习爬虫相关知识。

    Scrapy简介

    Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

    架构概览

    scrapy_architecture.png

    咋一看这张架构图有点复杂,仔细分析一下其实也不难理解。

    组件

    Scrapy Engine(引擎)

    引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。 详细内容查看下面的数据流(Data Flow)部分。

    此组件是爬虫的“大脑”,负责控制数据在系统中所有组件的流动。(数据从网络获取->一系列处理->结构化存储)

    Scheduler(调度器)

    调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。

    刚开始爬取的URL和后续爬取的URL将进去调度器,等待爬取。调度器有自动去除重复的URL的功能,也可配置不去重。

    Downloader(下载器)

    下载器负责获取页面数据并提供给引擎,而后提供给spider。

    看上图,Engine向Scheduler请求一个待爬取的URL,接着发出请求给Downloader下载器下载数据。

    Spiders

    Spider是Scrapy用户编写用于分析response并提取item(即获取到的item)或额外跟进的URL的类。 每个spider负责处理一个特定(或一些)网站。

    这个就是你写正则解析爬取的数据的地方,封装成指定的的item结构再传送给Pipeline、或者把之后的URL请求传递给Scheduler(见上图有个箭头指向Scheduler)。

    Downloader middlewares(下载器中间件)

    简单来说,可以在该中间件添加User-Agent,、IP代理等。

    Spider middlewares(Spider中间件)

    该中间件负责处理Downloader返回的response信息和从Spider发出去的Request(下一步请求)、Item对象(结构化的对象进入Pipline)

    Item Pipeline

    负责处理被Spider提取出来的item,可以在这里进行清理、验证、持久化处理等。

    创建Scrapy项目流程

    如果你看了以上的解释还不是很懂的话,接下来我们将创建一个项目来增强理解。
    首先保证你的电脑已经通过pip安装了scrapy,接着在命令行(学开发的不懂命令行,那就有点😓了)输入:

    scrapy startproject proxyCrawler
    

    该命令将创建包含一下内容的爬虫目录:


    image.png

    这些文件分别是:

    • scrapy.cfg: 项目的配置文件。
    • scrapyspider/: 该项目的python模块。之后您将在此加入代码。
    • scrapyspider/items.py: 项目中的item文件。
    • scrapyspider/pipelines.py: 项目中的pipelines文件。
    • scrapyspider/settings.py: 项目的设置文件。
    • scrapyspider/spiders/: 放置spider代码的目录。

    编写爬虫

    这篇文章主要介绍了Scrapy框架的基本知识,下一章我们将编写一个爬虫来爬取网上的免费代理:西刺代理、蘑菇代理等。敬请期待...


    微信公众号Python小咖~欢迎来撩

    相关文章

      网友评论

          本文标题:Scrapy 爬虫框架15分钟快速入门

          本文链接:https://www.haomeiwen.com/subject/yqzlqftx.html