Python都有哪些常见的,好用的爬虫框架
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python都有哪些常见的,好用的爬虫框架相关的知识,希望对你有一定的参考价值。
网络爬虫的抓取策略有很多种,按照系统结构和实现技术,大致可以分为以下几种:通用网络爬虫(GeneralPurposeWebCrawler)、聚焦网络爬虫(FocusedWebCrawler)、增量式网络爬虫(IncrementalWebCrawler)、深层网络爬虫(DeepWebCrawler)。增量式网络爬虫是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。
一般网络爬虫的爬行范围和数量很大,爬行速度和存储空间要求很高,爬行页面的顺序也比较低。同时,由于需要刷新的页面太多,通常采用并行工作,但刷新一页需要很长时间。
聚焦网络爬虫是指选择性地爬行与预定义主题相关的网络爬虫。与普通网络爬虫相比,聚焦爬虫只需爬行与主题相关的网页,大大节省了硬件和网络资源,保存的网页也因数量少而更新快,还能很好地满足一些特定人群对特定领域信息的需求。
DeepWeb爬虫,也就是深层网页爬虫,在深层网页容量是表层网页的数百倍,是互联网上最大、发展最快的新信息资源。 参考技术A 由于项目需求收集并使用过一些爬虫相关库,做过一些对比分析。以下是我接触过的一些库:
Beautiful Soup。名气大,整合了一些常用爬虫需求。缺点:不能加载JS。
Scrapy。看起来很强大的爬虫框架,可以满足简单的页面爬取(比如可以明确获知url pattern的情况)。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。
mechanize。优点:可以加载JS。缺点:文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。
selenium。这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。
cola。一个分布式爬虫框架。项目整体设计有点糟,模块间耦合度较高,不过值得借鉴。
以下是我的一些实践经验:
对于简单的需求,比如有固定pattern的信息,怎么搞都是可以的。
对于较为复杂的需求,比如爬取动态页面、涉及状态转换、涉及反爬虫机制、涉及高并发,这种情况下是很难找到一个契合需求的库的,很多东西只能自己写。
至于题主提到的:
还有,采用现有的Python爬虫框架,相比与直接使用内置库,优势在哪?因为Python本身写爬虫已经很简单了。
third party library可以做到built-in library做不到或者做起来很困难的事情,仅此而已。还有就是,爬虫简不简单,完全取决于需求,跟Python是没什么关系的。 参考技术B Requests啊,常见又好用
Python的爬虫框架哪个最好用
1、Scrapy:是一个为了抓取网站数据,提取数据结构性数据而编写的应用框架,可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中,用这个框架可以轻松爬下来各种信息数据。2、Pyspider:是一个用Python实现的功能强大的网络爬虫系统,能在浏览器界面上进行脚本的编写,功能的调度和爬取结果的实时查看,后端使用常用的数据库进行抓取结构的存储,还能定时设置任务与任务优先级等。
3、Crawley:可以高速抓取对应网站内容,支持关系和非关系数据库,数据可以导出为json、xml等。
4、Portia:是一个开源可视化爬虫工具,可以让您在不需要任何编程知识的情况下抓取网站,简单地注解您感兴趣的页面,创建一个蜘蛛来从类似的页面抓取数据。
5、Newspaper:可以用来提取新闻、文章和内容分析,使用多线程,支持10多种编程语言。
6、Beautiful Soup:是一个可以从HTML或者xml文件中提取数据的Python库,它能通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式;同时帮你节省数小时甚至数天的工作时间。
7、Grab:是一个用于创建web刮板的Python框架,借助Grab,您可以创建各种复杂的网页抓取工具,从简单的五行脚本到处理数万个网页的复杂异步网站抓取工具。Grab提供一个api用于执行网络请求和处理接收到的内容。
8、Cola:是一个分布式的爬虫框架,对于用户来说,只需要编写几个特定的函数,而无需关注分布式运行的细节,任务会自动分配到多台机器上,整个过程对用户是透明的。 参考技术A 由于项目需求收集并使用过一些爬虫相关库,做过一些对比分析。以下是我接触过的一些库: Beautiful Soup。名气大,整合了一些常用爬虫需求。缺点:不能加载JS。 Scrapy。
以上是关于Python都有哪些常见的,好用的爬虫框架的主要内容,如果未能解决你的问题,请参考以下文章