• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Scrapy框架

武飞扬头像
一个源
帮助1

Scripy特点:

是一个用python实现的为了爬取网站数据、提取数据的应用框架scrapy使用的Twisted异步网络库来处理网络通讯

使用scrapy框架可以高效(爬取效率和开发效率)完成数据爬取

scrapy安装:

python -m pip install scrapy

scrapy架构图

学新通

scrapy五大组件及作用

引擎(Engine):整个框架核心

调度器(Scheduler):维护请求队列

下载器(Downloader):获取响应对象

爬虫文件(Spider):数据解析提取

项目管道(Pipeline):数据入库处理

两个中间件及作用:

下载器中间件(Downloader Middlewares)

请求对象 -> 引擎 -> 下载器,包装请求(随机代理等)

蜘蛛中间件(Spider Middlewares)

响应对象 -> 引擎 -> 爬虫文件,可修改响应对象属性

scrapy工作流程

工作流程描述 - 爬虫项目正式启动

引擎向爬虫程序索要第一批要爬取的URL,交给调度器入队列

调度器处理请求后出队列,通过下载器中间件交给下载器去下载

下载器得到响应对象后,通过蜘蛛中间件交给爬虫程序

爬虫程序进行数据爬取:        

        数据交给管道文件去入库处理

        对于需要继续跟进的URL,再次交给调度器入队列,如此循环

scrapy常用命令

创建爬虫项目:scrapy startproject 项目名

创建爬虫文件:scrapy genspider  爬虫文件名   允许爬取的域名

运行爬虫项目:scrapy crawl  爬虫名

项目目录结构:

学新通

 项目完成步骤

新建项目和爬虫文件

定义要爬取的数据结构:items.py

完成爬虫文件数据解析提取:爬虫文件名.py

管道文件进行数据处理:pipelines.py

对项目进行全局配置:settings.py

pycharm运行爬虫项目:run.py

settings.py常用配置

设置User-Agent:USER_AGENT=" "

设置最大并发数(默认为16):CONCURRENT_REQUESTS=32

下载延迟时间(每隔多久访问一个网页):DOWNLOAD_DELAY=0.1

请求头:DEFAULT_REQUEST_HEADERS={}

设置日志级别:LOG_LEVEL=" "

保存到日志文件:LOG_FILE="xxx.log"

设置数据导出编码:FEED_EXPORT_ENCODING=" "

项目管道   -   优先级为1--1000,数字越小优先级越高

        ITEM_PIPELINES={'项目目录名.pipelines.类名':优先级}

cookie(默认禁用,取消注释--True|False都为开启)

        COOKIES_ENABLED=False

下载器中间件

        DOWNLOADER_MIDDLEWARES={"项目目录名.middlewares.类名":优先级}

items.py详解

scrapy提供了item类,可以自定义爬取字段

item类似我们常说的字典,我们需要抓取哪些字段直接在此处定义即可,当爬虫文件中对item类进行实例化后,会有方法将数据交给管道文件处理

  1.  
    import scrapy
  2.  
     
  3.  
    class MaoyanItem(scrapy.Item):
  4.  
    # define the fields for your item here like:
  5.  
    name=scrapy.Field()
  6.  
    star=scrapy.Field()
  7.  
    time=scrapy.Field()

常用配置

name:爬虫名,当运行爬虫项目时使用

allowed_domains:允许爬取的域名,非本域的URL地址会被过滤

start_urls:爬虫项目启动时起始的URL地址

  1.  
    import scrapy
  2.  
     
  3.  
    class BaiduSpider(scrapy.Spider):
  4.  
    name='百度'
  5.  
    allowed_domains=['www.百度.com']
  6.  
    start_urls=['http://www.百度.com/']
  7.  
     
  8.  
    def parse(self,response):
  9.  
    pass

爬虫文件运行流程描述

爬虫项目启动,引擎找到此爬虫文件,讲start_urls中的URL地址拿走交给调度器入队列,然后出队列交给下载器下载,得到response

response通过引擎又交还给了此爬虫文件,parse函数中的参数即是

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgficij
系列文章
更多 icon
同类精品
更多 icon
继续加载