• 爬虫学习(十九)——Scrapy的学习及其使用


    Scrapy框架的介绍

    Scrapy,非常的强悍,通过python语言编写的,非常知名的爬虫框架

    框架工作流程

    框架流程图

    基本工作流程;

    1、引擎向spiders要url

    2、引擎将要爬取的url给调度器(schedule)

    3、调度器(schedule)会将url生成请求对象放入到指定的队列中

    4、从队列中抛出一个请求

    5、引擎将请求交给下载器进行处理

    6、下载器发送请求,获取互联网数据

    7、下载器将数据返回给引擎进行处理

    8、引擎将数据再次给spiders

    9、spiders使用xpath解析该数据,得到数据或url

    10、spiders将数据或者url给到引擎

    11、引擎判断spiders发送的是url函数数据,将数据交给管道 Item Pipeline,是url交给调度器处理

    注意:

    scrapy结束工作流程的条件是spiders传给引擎的只剩下数据的时候是流程工作结束的时候

    Scrapy框架各部分职能

    scrapy engine:负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等

    Schedule(调度器):它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎

    downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理

    Spiders(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)

    Item pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方

    Scrapy框架的使用

    基本使用:

    1、关于scrapy框架,我们只需要关注spiders即可,爬虫的代码也是写到了spiders里面

    2、管道是用来处理数据的,框架为我们留下接口,只需要实现接口即可

    创建工程项目

    1、通过指令创建项目:scrapy startproject xxx

    2、通过指令创建文件

    ①cd 目标文件

    ②scrapy genspider name  www.xxx.com

    参数解释:

    name:爬虫的名字,启动时根据爬虫的名字启动项目

    allowed_domains:允许的域名,就是爬取的时候这个请求要不要发送,如果是允许该域名之下的url,就会发送,如果不是,则过滤掉这个请求,这是一个列表,可以写多个允许的域名

    start_urls:爬虫的起始url,是一个列表,可以传递多个起始的url

    def parse(self,response) :parse函数名是固定的,当收到下载数据的时候,就会自动调用这个方法;response是该函数的第二个参数,是一个响应对象,从该对象中回去HTML字符串,然后解析

    注意:parse函数返回的必须是一个可迭代的对象

    定制item.py

    打印response对象

    命令:scrapy crawl name

    运行

    命令:scrapy crawl name -o  filename

  • 相关阅读:
    R必学包之dplyr
    PSO(Thepopularity-similarity-oplimization) modol
    社区发现(Community Detection)算法
    Louvain algorithm for community detection
    路由算法
    github学习
    win10+Linux18.04双系统安装
    KBEngine源码:Entity
    skynet源码分析:timer
    skynet源码分析:Socket
  • 原文地址:https://www.cnblogs.com/kuangkuangduangduang/p/10433379.html
Copyright © 2020-2023  润新知