您的位置:首页 > 新闻资讯 >文章内容
Python爬虫框架--scrapy的运行和优缺点
来源:互联网 作者:admin 时间:2019-04-08 17:00:00

  我们编写爬虫是可以使用框架的,使用了框架写爬虫会更加容易些,不过前提是我们熟悉这个框架,清楚其优缺点,这样运用起来也事半功倍的。今天就跟小编去了解下scrapy这个爬虫框架的运行方式以及优缺点的。


  scrapy是如何运行的?


  从start_urls里获取第一批url并发送请求,请求由引擎交给调度器入请求队列,获取完毕后,调度器将请求队列里的请求交给下载器去获取请求对应的响应资源,并将响应交给自己编写的解析方法做提取处理:


  1.如果提取出需要的数据,则交给管道文件处理;


  2.如果提取出url,则继续执行之前的步骤(发送url请求,并由引擎将请求交给调度器入队列...),直到请求队列里没有请求,程序结束。


Python爬虫框架--scrapy的运行和优缺点


  Scrapy优缺点有哪些?


  优点:scrapy是异步的,采取可读性更强的xpath代替正则,有强大的统计和log系统,能同时在不同的url上爬行,而且支持shell方式,方便独立调试。写middleware,方便写一些统一的过滤器,通过管道的方式存入数据库。


  缺点:基于python的爬虫框架,扩展性比较差;基于twisted框架,运行中的exception是不会干掉reactor,并且异步框架出错后是不会停掉其他任务的,数据出错后难以察觉。


  scrapy-redis代表什么意思?


  机灵代理的代理服务器工程师表示,scrapy是一个Python爬虫框架,爬取效率极高,具有高度定制性,但是不支持分布式。而scrapy-redis一套基于redis数据库、运行在scrapy框架之上的组件,可以让scrapy支持分布式策略,Slaver端共享Master端redis数据库里的item队列、请求队列和请求指纹集合。


  为什么选择redis数据库?因为redis支持主从同步,而且数据都是缓存在内存中的,所以基于redis的分布式爬虫,对请求和数据的高频读取效率非常高。


  scrapy和request有什么不同?


  scrapy是封装起来的框架,他包含了下载器,解析器,日志及异常处理,基于多线程,twisted的方式处理,对于固定单个网站的爬取开发,有优势,但是对于多网站爬取100个网站,并发及分布式处理方面,不够灵活,不便调整与括展。


  request是一个HTTP库,它只是用来,进行请求,对于HTTP请求,他是一个强大的库,下载,解析全部自己处理,灵活性更高,高并发与分布式部署也非常灵活,对于功能可以更好实现。


  以上就是关于Python爬虫框架scrapy的运行和优缺点介绍了,通过上文,大家对于这个scrapy框架也有一定的认识了,目前来说,这个框架还是比较实用的,是一种比较常用的框架之一。


相关文章内容简介
推荐阅读
  • 13 2019-04
    用了IP代理怎么无效,还是访问不了?

    用了IP代理怎么无效,还是访问不了?每当我们遇到这种情况,一般是怎么处理的呢?原因都有哪些?对于这个问题,大家的看法并不一样,很多人都偏向于IP代理商的问题,认为这些IP代理质量

  • 21 2019-06
    如何验证ip代理是否可以用

    如何验证ip代理是否可以用?网络上有很多的免费代理ip,但是有效率低的可怜,这个是为什么呢?这是因为用的人太多了,同一个ip无数人用来访问同一个网站,ip就会被封掉。那么如何验证ip是

  • 23 2020-09
    代理ip让上网更安全

    我们知道,当我们上网时,我们的真实IP可能会被泄露,当被别有用心的人获取到时则可能会对我们造成一些伤害。而如果使用了代理IP上网后,则完美的隐藏了我们的本机真实IP,多加了一份安

  • 27 2019-11
    看看独享IP与共享IP要怎么选择

    虽然知道独享IP跟共享IP的主要区别,但是落实到选择使用方面,很多用户都表示实在不太清楚要怎么选择才是最合适的。下面我们来看看不同的使用场景要选择什么样的代理IP才好?

  • 30 2020-07
    怎么换ip代理效果最好

    重启路由器换IP和免费换IP工具方法,这些都是可以更换IP地址的,哪个好呢?

  • 01 2019-10
    详解代理IP的工作原理

    代理IP是怎么起到作用的?它的工作原理是什么?或许对于一般使用者而言,只要代理IP能够奏效,完成相应的工作那么实现过程原理可以不用去理解,但是如果你对这方面感兴趣,想要进行一番研

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部