Python多框架选择

越昊穹
2023-12-01

一、Python框架的分类

1.分布式爬虫:Nutch

优点:

分布式抓取,存储和索引,有hadoop支持,第三方插件丰富

缺点:

1.分布式爬虫是好几台机器在同时运行,如何保证不同的机器爬取页面的时候不会出现重复爬取的问题。

同样,分布式爬虫在不同的机器上运行,在把数据爬完后如何保证保存在同一个地方。

2.使用上手难,用Nutch进行爬虫的二次开发,爬虫的编写和调试所需的时间,往往是单机爬虫所需的十倍时间不止。

2.JAVA单机爬虫:Crawler4j、WebMagic、WebCollector

优点:

  1. 难问题和复杂的问题都被以前的人解决了(比如DOM树解析和定位、字符集检测、海量URL去重)

  1. 使用java语言,对java工程师门槛更低

  1. 支持多线程。

  1. 支持代理。

  1. 能过滤重复URL的。

  1. 负责遍历网站和下载页面。爬js生成的信息和网页信息抽取模块有关,往往需要通过模拟浏览器(htmlunit,selenium)来完成。

缺点:

设计模式对软件开发没有指导性作用。用设计模式来设计爬虫,只会使得爬虫的设计更加臃肿。

3. 非JAVA单机爬虫:scrapy

优点:

1.可以作为做分布式的爬虫,借助一个组件Scrapy-Redis,利用了Redis可以分布式的功能,集成到Scrapy框架中,使得爬虫可以进行分布式。

2.Python的语法简洁 ,入门简单,节点解析简洁高效

缺点:

1. 只能爬取静态网页,无法爬取动态网页。

2. 只能爬取一个网站的数据,无法爬取多个网站的数据。

3. 爬取网页速度较慢,因为它会延迟一段时间再进行下一次请求,以免被网站认为是攻击而封禁 IP 地址。

4. 对网站的服务器负载较大,如果爬取的网站没有足够的带宽,可能会导致网站瘫痪。

5. 爬取的数据并不是实时数据,而是爬取时的数据。

6. 爬取的数据可能会有误差,因为网页内容可能会经常更新。

7.如果爬取的网站有反爬虫措施,Scrapy 可能会被封禁 IP 地址

 类似资料: