您的位置:首页 > 新闻资讯 >文章内容
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框架也有一定的认识了,目前来说,这个框架还是比较实用的,是一种比较常用的框架之一。


相关文章内容简介
推荐阅读
  • 25 2019-02
    【新手入门】Python爬虫爬取步骤分析

    网络爬虫的基本理念这里就不讲了,如果大家还没有清楚的,可以先去查一下。本文主要讲Python爬虫爬取步骤分析,很多人都分享了自己爬取的代码,其实新手是看不懂的,一篇的代码看下来,

  • 06 2020-07
    ip代理的应用很重要

    技术的发展能够为我们的工作与生活代理巨大的变化,而我们也要做好准备来迎接以及适应这种变化,这样才能够更好的在新时代中发展。

  • 19 2019-03
    选购IP代理,要避免这些问题

    若是大家需要使用IP代理,大家通过是怎么选择的,有木有一些技巧呢?市场上IP代理的商家鱼龙混杂,想找家好用的可不简单,有些商家的陷阱你可能不小心就中招了。

  • 23 2019-07
    用动态ip代理软件的益处有哪些?

    用动态ip代理软件的益处有哪些?不知道大家是否都有使用过动态ip代理软件,其实动态ip代理软件属于代理,可以更换ip地址,如果你利用动态ip代理软件上网访问时,电脑浏览器并不是立即到we

  • 15 2019-03
    企业使用哪个IP代理比较好?

    普通人是比较少会使用到IP代理的,通常都是一些企业使用,那么企业使用哪个IP代理比较好?企业使用IP代理,主要是因为在使用代理ip采集数据的时候,经常会碰到有反采集策略规则的网站.

  • 16 2020-04
    IP代理软件怎么设置host

    host属性是一个可读可写的字符串,可设置或返回当前URL的主机名称和端口号。当我们在浏览器输入一个域名访问网站时,本机设置的DNS服务器会先将域名解析,若本机网络中没有设置DNS,则是

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

大客户经理微信

微信公众号

微信公众号

回到顶部