Python有哪些常见的,好用的爬虫框架

发布网友 发布时间:2022-04-23 03:26

我来回答

3个回答

热心网友 时间:2022-04-06 01:11

网络爬虫的抓取策略有很多种,按照系统结构和实现技术,大致可以分为以下几种:通用网络爬虫(GeneralPurposeWebCrawler)、聚焦网络爬虫(FocusedWebCrawler)、增量式网络爬虫(IncrementalWebCrawler)、深层网络爬虫(DeepWebCrawler)。
增量式网络爬虫是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。
一般网络爬虫的爬行范围和数量很大,爬行速度和存储空间要求很高,爬行页面的顺序也比较低。同时,由于需要刷新的页面太多,通常采用并行工作,但刷新一页需要很长时间。
聚焦网络爬虫是指选择性地爬行与预定义主题相关的网络爬虫。与普通网络爬虫相比,聚焦爬虫只需爬行与主题相关的网页,大大节省了硬件和网络资源,保存的网页也因数量少而更新快,还能很好地满足一些特定人群对特定领域信息的需求。
DeepWeb爬虫,也就是深层网页爬虫,在深层网页容量是表层网页的数百倍,是互联网上最大、发展最快的新信息资源。

热心网友 时间:2022-04-06 02:29

由于项目需求收集并使用过一些爬虫相关库,做过一些对比分析。以下是我接触过的一些库:

Beautiful Soup。名气大,整合了一些常用爬虫需求。缺点:不能加载JS。
Scrapy。看起来很强大的爬虫框架,可以满足简单的页面爬取(比如可以明确获知url pattern的情况)。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。
mechanize。优点:可以加载JS。缺点:文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。
selenium。这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。
cola。一个分布式爬虫框架。项目整体设计有点糟,模块间耦合度较高,不过值得借鉴。

以下是我的一些实践经验:

对于简单的需求,比如有固定pattern的信息,怎么搞都是可以的。
对于较为复杂的需求,比如爬取动态页面、涉及状态转换、涉及反爬虫机制、涉及高并发,这种情况下是很难找到一个契合需求的库的,很多东西只能自己写。

至于题主提到的:
还有,采用现有的Python爬虫框架,相比与直接使用内置库,优势在哪?因为Python本身写爬虫已经很简单了。
third party library可以做到built-in library做不到或者做起来很困难的事情,仅此而已。还有就是,爬虫简不简单,完全取决于需求,跟Python是没什么关系的。

热心网友 时间:2022-04-06 04:04

Requests啊,常见又好用

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com