前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

Python爬虫一般用什么框架比较好?一般来讲,只有在遇到比较大型的需求时,才会使用Python爬虫框架。这样的做的主要目的,是为了方便管理以及扩展。本文将向大家推荐十个Python爬虫框架,它们分别是Scrapy、Crawley、Portia、newspaper、python-goose、Beautiful Soup、mechanize、selenium、cola和PySpider。

1、Scrapy:

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。它是很强大的爬虫框架,可以满足简单的页面爬取,比如可以明确获知url pattern的情况。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。它的特性有:HTML, XML源数据 选择及提取 的内置支持;提供了一系列在spider之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。

2、Crawley:

高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等。

3、Portia:

是一个开源可视化爬虫工具,可让使用者在不需要任何编程知识的情况下爬取网站!简单地注释自己感兴趣的页面,Portia将创建一个蜘蛛来从类似的页面提取数据。简单来讲,它是基于scrapy内核;可视化爬取内容,不需要任何开发专业知识;动态匹配相同模板的内容。

4、newspaper:

可以用来提取新闻、文章和内容分析。使用多线程,支持10多种语言等。作者从requests库的简洁与强大得到灵感,使用python开发的可用于提取文章内容的程序。支持10多种语言并且所有的都是unicode编码。

5、python-goose:

java写的文章提取工具。Python-goose框架可提取的信息包括:文章主体内容、文章主要图片、文章中嵌入的任何Youtube/Vimeo视频、元描述、元标签。

6、Beautiful Soup:

名气大,整合了一些常用爬虫需求。它是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。Beautiful Soup的缺点是不能加载JS。

7、mechanize:

它的优点是可以加载JS。当然它也有缺点,比如文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。

8、selenium:

这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。Selenium是自动化测试工具,它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果在这些浏览器里面安装一个 Selenium 的插件,可以方便地实现Web界面的测试. Selenium 支持浏览器驱动。Selenium支持多种语言开发,比如 Java,C,Ruby等等,PhantomJS 用来渲染解析JS,Selenium 用来驱动以及与 Python 的对接,Python 进行后期的处理。

9、cola:

是一个分布式的爬虫框架,对于用户来说,只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。项目整体设计有点糟,模块间耦合度较高。

10、PySpider:

一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。python 脚本控制,可以用任何你喜欢的html解析包。

以上就是Python爬虫一般用的十大主流框架。这些框架的优缺点都不同,大家在使用的时候,可以根据具体场景选择合适的框架。

python爬虫需要调用什么模块_适合新手练习的Python项目有哪些?Python爬虫用什么框架比较好?...相关推荐

  1. python需要多大的硬盘_适合新手练习的几个python小项目

    关于python练习的小项目,其实就是一些常用的模块的针对练习 一.找出电脑中遗忘的大文件 # !/usr/bin/env python # _*_ coding:utf-8 -*- import o ...

  2. python秒表小项目_适合新手练习的几个python小项目

    关于python练习的小项目,其实就是一些常用的模块的针对练习 一.找出电脑中遗忘的大文件 # !/usr/bin/env python # _*_ coding:utf-8 -*- import o ...

  3. dt测试软件的学习心得,无线网络优化dt测试心得_适合新手入门,高手进阶_5年项目经验实战经验.docx...

    无线网络优化DT测试心得_适合新手入门,高手进阶_5年项目经验实战经验 无线网络优化DT测试心得_适合新手入门,高手进阶_5年项目经验实战经验 路测中不常见的问题和个人心得 1.深井子镇投诉测试报告 ...

  4. GitHub 上有哪些适合新手跟进的优质项目?(附地址)

    作者 | 小G 来源 | 公众号GitHubDaily 从 2015 年至今,我们累计在 GitHub 上看了上万个开源项目,并一直关注着开源圈的动态,通过这样的习惯,使得我们挖掘出了不少优质的 Gi ...

  5. python getattr调用自己模块_在Python中通过getattr获取对象引用的方法

    getattr函数 (1)使用 getattr 函数,可以得到一个直到运行时才知道名称的函数的引用. >>> li = ["Larry", "Curly ...

  6. c调用python代码找不到模块_构建 Python C 扩展模块

    有好几种扩展 Python 的功能的方法.其中一种就是用 C 或 C++ 编写 Python 模块.通过这个过程可以提高性能,更好地访问 C 库函数和系统调用.在本教程中,我将带大家了解如何使用 Py ...

  7. python哪个关键字可以导入模块_关于python导入模块import与常见的模块详解

    0.什么是python模块?干什么的用的? Java中如果使用abs()函数,则需要需要导入Math包,同样python也是封装的,因为python提供的函数太多,所以根据函数的功能将其封装在不同的m ...

  8. 一个完整的python文件即是一个模块_用python玩转数据|基本语法

    比较运算符 >>>3<4<7 True >>>3<4<1 False >>> 打开文件 >>> f=op ...

  9. python实现登录支付宝收能量_适合零基础人群学习的Python入门教程

    适合零基础人群学习的Python入门教程学什么?小编为大家准备的Python学习教程,课程主要讲解:Python核心编程.Linux基础.前端开发.Web开发.爬虫开发.人工智能等内容. 对于初学者想 ...

最新文章

  1. 做技术到底可以做到哪种地步-技术为什么越走越窄 (转)
  2. 在linux下Qt使用sqlite,QT中SQLite使用【实例】
  3. Leetcode 48. 旋转图像 (每日一题 20210813)
  4. leetcode 330. Patching Array | 1798. Maximum Number of Consecutive Values You Can Make
  5. 兼容IE与firefox的css 线性渐变(linear-gradient)
  6. linux 开启防火墙的指定端口
  7. Arch Linux下打不开gnome-shell
  8. 虚拟机安装CentOS6.4
  9. redis调优 -- 内存碎片
  10. python安装后无法使用_Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)...
  11. win7 更新android sdk,大神为你详解win7系统android sdk manager无法更新的处理对策
  12. echarts 按需引入模_【React】react项目引入echarts插件
  13. 举个栗子看如何做MySQL 内核深度优化 1
  14. 一个用户下表、批量授予权限给另一个用户
  15. 基数树(radix tree)
  16. 使用spss做各种相关性分析的方法和步骤
  17. 机房的防火墙有何作用
  18. scipy--统计检验
  19. 欢迎使用CSDN-markdown编辑器大范甘迪
  20. 网易2019实习生招聘-牛牛的naozhong

热门文章

  1. 修改linux引导文件系统,修改/etc/fstab文件加快Linux系统的启动速度
  2. service获取selinux权限_Spring Boot 整合 Spring Security 示例实现前后分离权限注解 + JWT 登录认证...
  3. 以计算机为题写一篇英语作文,请以“未来的钢笔”为题写一篇不少于80词的英语作文...
  4. linux一次性密码确保ssh登录安全,使用 SSH 时确保 EC2 Linux 实例安全的最佳实践
  5. android8.0华为荣耀8,一线|华为手机开启重大升级 荣耀成安卓8.0覆盖机型最多品牌...
  6. PHP array_diff_assoc
  7. Memcached:高性能的分布式内存缓存服务器
  8. 同时安装vs2010和VS2012后IEnumerableModelClientValidationRule编译错误
  9. VB之Collection---Collection集合类
  10. java 注解校验_Java开发编写自定义校验注解和校验器