首页 > 其他分享 >scrapy 介绍,架构介绍(框架)

scrapy 介绍,架构介绍(框架)

时间:2024-04-07 18:01:55浏览次数:23  
标签:架构 title py 爬虫 介绍 scrapy install chouti

 

scrapy 介绍

 

#1  通用的网络爬虫框架,爬虫界的django
#2 scrapy执行流程
    5大组件
        -引擎(EGINE):大总管,负责控制数据的流向
        -调度器(SCHEDULER):由它来决定下一个要抓取的网址是什么,去重
        -下载器(DOWLOADER):用于下载网页内容, 并将网页内
        容返回给EGINE,下载器是建立在twisted这个高效的异步模型上的
        -爬虫(SPIDERS):开发人员自定义的类,用来解析responses,并且提取items,或者发送新的请求request
        -项目管道(ITEM PIPLINES):在items被提取后负责处理它们,主要包括清理、验证、持久化(比如存到数据库)等操作
    2大中间件
        -爬虫中间件:位于EGINE和SPIDERS之间,主要工作是处理SPIDERS的输入和输出(用的很少)
        -下载中间件:引擎和下载器之间,加代理,加头,集成selenium        
        
# 3 开发者只需要在固定的位置写固定的代码即可(写的最多的spider)

 

 

scrapy安装(windows,mac,linux)

#1 pip3 install scrapy(mac,linux)
#2 windows上(80%能成功,少部分人成功不了)
    1、pip3 install wheel #安装后,便支持通过wheel文件安装软件,wheel文件官网:https://www.lfd.uci.edu/~gohlke/pythonlibs
    3、pip3 install lxml
    4、pip3 install pyopenssl
    5、下载并安装pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/
    6、下载twisted的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    7、执行pip3 install 下载目录\Twisted-17.9.0-cp36-cp36m-win_amd64.whl
    8、pip3 install scrapy
# 3 就有scrapy命令
    -D:\Python36\Scripts\scrapy.exe  用于创建项目

 

 

 

scrapy 创建项目,创建爬虫,运行爬虫

1 scrapy startproject 项目名
    -scrapy startproject firstscrapy
2 创建爬虫
    -scrapy genspider 爬虫名 爬虫地址
    -scrapy genspider chouti dig.chouti.com
    -一执行就会在spider文件夹下创建出一个py文件,名字叫chouti
3 运行爬虫
    -scrapy crawl chouti   # 带运行日志
    -scrapy crawl chouti --nolog  # 不带日志
4 支持右键执行爬虫
    -在项目路径下新建一个main.py
    from scrapy.cmdline import execute
    execute(['scrapy','crawl','chouti','--nolog'])

 

 

目录介绍

  # 目录介绍
    firstscrapy  # 项目名字
        firstscrapy # 包
            -spiders # 所有的爬虫文件放在里面
                -baidu.py # 一个个的爬虫(以后基本上都在这写东西)
                -chouti.py
            -middlewares.py # 中间件(爬虫,下载中间件都写在这)
            -pipelines.py   # 持久化相关写在这(items.py中类的对象)
            -main.py        # 自己加的,执行爬虫
            -items.py       # 一个一个的类,
            -settings.py    # 配置文件
        scrapy.cfg          # 上线相关

 

settings介绍

 
1 默认情况,scrapy会去遵循爬虫协议
2 修改配置文件参数,强行爬取,不遵循协议
    -ROBOTSTXT_OBEY = False
3 USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
4 LOG_LEVEL='ERROR'

 

 

scrapy的数据解析(重点)

#xpath:
    -response.xpath('//a[contains(@class,"link-title")]/text()').extract()  # 取文本
    -response.xpath('//a[contains(@class,"link-title")]/@href').extract()  #取属性
#css
    -response.css('.link-title::text').extract()  # 取文本
    -response.css('.link-title::attr(href)').extract_first()  # 取属性

 

 

scrapy的持久化存储(重点)

#1 方案一:parser函数必须返回列表套字典的形式(了解)
    scrapy crawl chouti -o chouti.csv
#2 方案二:高级,pipline item存储(mysql,redis,文件)
    -在Items.py中写一个类
    -在spinder中导入,实例化,把数据放进去
            item['title']=title
            item['url']=url
            item['photo_url']=photo_url
            yield item
            
    -在setting中配置(数字越小,级别越高)
        ITEM_PIPELINES = {
           'firstscrapy.pipelines.ChoutiFilePipeline': 300,
        }
    -在pipelines.py中写ChoutiFilePipeline
        -open_spider(开始的时候)
        -close_spider(结束的时候)
        -process_item(在这持久化)

 

标签:架构,title,py,爬虫,介绍,scrapy,install,chouti
From: https://www.cnblogs.com/97zs/p/18119598

相关文章

  • K8s技术全景:架构、应用与优化
    本文深入探讨了Kubernetes(K8s)的关键方面,包括其架构、容器编排、网络与存储管理、安全与合规、高可用性、灾难恢复以及监控与日志系统。关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕......
  • Go 项目依赖注入wire工具最佳实践介绍与使用
    目录一、引入二、控制反转与依赖注入三、为什么需要依赖注入工具3.1示例3.2依赖注入写法与非依赖注入写法四、wire工具介绍与安装4.1wire基本介绍4.2安装五、Wire的基本使用5.1前置代码准备5.2使用Wire工具生成代码六、Wire核心技术5.1抽象语法树分析5.2模板编程七......
  • 01-Maven介绍
         ......
  • 租房小程序个版本区别介绍
    租房小程序个版本区别介绍经常被问到我们的租房小程序都有哪些版本?不同版本的区别是什么?所以就有了本文的差异比较。租房小程序目前有四个版本,分别是:✔开源版(v0.5)✔开源升级版+视频教程(v0.6)✔课设毕设版(v0.8)✔商用标准版(v1.5)✔商用PRO版(v2.0)v0.6和v0.8获取......
  • 前端的图表绘制框架Konva-基本介绍
    关于Konva及TS的基础这个Konva是一个HTML5的2D绘图库,应用它可以画出各种各样的二维图形来的。Konva.js-JavaScript2dcanvaslibrary MITLicense这个是用它创建的一些网站或者在线工具,还是挺有意思的。应用它的程序自然是多得多,但是我最近也是因缘际会,用到它了。不过像......
  • Linux云计算架构:颠覆性创新还是过度炒作?
    Linux云计算架构:颠覆性创新还是过度炒作?一、Linux云计算架构的崛起与影响Linux云计算架构作为当前IT领域的热门话题,其崛起速度之快令人瞩目。随着企业对云计算需求的不断增长,Linux凭借其开源、灵活和安全的特性,在云计算市场中占据了重要地位。Linux云计算架构的广泛应用,不仅......
  • 长期通配符证书介绍
    长期通配符证书是指有效期较长的泛域名证书,这种证书允许您使用单一证书为一个主域名及其所有相关子域名提供长期的HTTPS加密服务。获取长期通配符证书的过程与普通通配符证书相似,但需要注意选择具有较长有效期的证书产品,并确保符合CA机构及行业规定的最长有效期限制。以下是一......
  • Android车载设备开发相关名词介绍
    一、通讯相关1、ECALL        如遭遇紧急情况,用户可按下该键以最高优先级接通呼叫中心,人工坐席将同时获取客户车辆的重要数据并协助驾驶员脱离危险。实现原理        E-Call的核心思想是利用车载卫星定位系统获取车辆的位置信息,在事故发生后,由传感器检测......
  • 新零售SaaS架构:客户管理系统架构设计(万字图文总结)
    什么是客户管理系统?客户管理系统,也称为CRM(CustomerRelationshipManagement),主要目标是建立、发展和维护好客户关系。CRM系统围绕客户全生命周期的管理,吸引和留存客户,实现缩短销售周期、降低销售成本、增加销售收入的目的,从而提高企业的盈利能力和竞争力。CRM系统以客户数据为......
  • 【解决方案】多租户技术架构设计入门(一)
    目录前言一、多租户的概念二、隔离模式2.1独立数据库模式2.2共享数据库独立数据架构2.3共享数据库共享数据架构三、隔离方案选型四、架构模型4.1模型分层4.2模型关系五、文章小结前言多租户的概念是我在毕业后不久进第一家公司接触到的,当时所在部门的业务是计划建设一套基于自研......