Scrapy的使用和介绍(一)

一、创建Srapy项目

(1)创建scrapy项目

scrapy startproject Tencent       # 项目名字是Tencnet

(2) 进入Tencent文件夹,执行下面代码,创建spider爬虫

scrapy genspider tencent  careers.tencent.com   #careers.tencent.com是网址

会生成一个下面名为tencent.py的文件

import scrapy
class Tencent1Spider(scrapy.Spider):
    name = 'tencent'
    allowed_domains = ['careers.tencent.com']
    start_urls = ['http://careers.tencent.com/']
    def parse(self, response):
        pass

name是我们的爬虫名;
allowed_domains是域名,也就是爬虫爬取的范围;
start_urls是爬虫最开始爬取的URL链接;
parse()是用来解析响应、提取数据,比如Xpath等操作。这个文件是我们的主干文件

(3)执行文件,存入到csv文件种

scrapy crawl tencent -o tencent.csv   #scrapy crawl tencent是运行tencent文件

二、Scrapy结构文件介绍

在这里插入图片描述
scrapy的主要组件包括Spiders、Engine、Scheduler、Downloader以及Item pipeline,其中Engine控制所有数据在各组件之间的流动,一个爬虫请求在Scrapy当中的处理过程大致如下:

  • Engine从Spider接收到第一个Request
  • Engine将刚刚接收到的Request转发至Scheduler队列当中,同时询问- - Scheduler下一个将要爬取的Request(异步执行)
  • Scheduler将队列当中下一个Request发送给Engine
  • Engine将Request转发至Downloader,Downloader根据Request的信息获取网站内容
  • Downloader获取了完整的网站信息,生成一个Response返回给Engine
  • Engine将Response转发给Spider
  • Spider获得Response并对其进行处理,处理完Response之后生成Item(结构化数据),或者根据新的ulr返回Request,将其发送到Engine
  • Engine将Item转发至Item Pipeline当中,Item Pipeline将会对Item做数据加工、数据转储等处理,同时Engine将接收到的Request转发至Scheduler队列当中
  • 从第1步开始重复执行,直到Scheduler队列当中没有Request需要处理为止

组件功能:

  • Engine: 控制数据在scrapy当中的流向,并在相应动作时触发时间。例如Engine会将Scheduler队列当中的下一个Request转发至Downloader当中,在转发Request、Response至Spider之前先调用中间件
  • Spider: 用户编写的用于处理网页内容并提取Item/Request的组件,scrapy当中可以有多个Spider,每个Spider负责一种特定类型的网页或网站。在Spider当中用户需要定义网页的解析逻辑,构造Item或者是构造更深层网页的Request,同时可以在Spider当中定义针对单个Spider的配置,配置包括绑定特定的中间件、Item pipeline,以及配置并发参数等
  • Scheduler: 调度器从Engine接收Request并将其加入到队列当中,调度器当中主要包含指纹过滤器以及队列功能组件,其中指纹过滤器用于过滤重复的Request请求,队列用于排队Request任务
  • Downloader: 下载器的功能非常简单,根据接收到的Request请求,访问相应的地址获取网页内容,Downloader是通过将Request任务注册到Twisted的Reactor来实现并发获取网页内容的
  • Item pipeline: 负责处理被Spider提取出的Item,例如针对Item做格式转换,写入文件,存入数据库

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

参考文献

https://www.jianshu.com/p/60f449e04be6

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

于弋gg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值