简介

数据之于今天社会,如同计算之于昨日世界。数据的重要性无须多言,但获得数据之法却十分可贵。越来越多的信息系统通过Web系统发布数据,使得网络爬虫成为了数据获取最重要的方式,夸大但不夸张,网络爬虫==数据获取。在当代社会,不会点儿爬虫技术,都不好意思说懂数据分析,这是实在话!

2019年1月,秉承新年新气象之气氛,受中国大学 MOOC 平台 Python 网络爬虫课程感召,好事者特别推荐10款相当优秀的 Python 计算生态帮助大家轻松打开网络爬虫之门。网络爬虫并不神秘,但爬虫也不是白菜技术,开发者要知道HTML、HTTP、Cookie、JavaScript 等概念和技术,多少要懂些反爬虫技术和技巧,这些都需要项目实战去积累。没实战过怎么办?那,还记得嵩老师吗?据说他今年将推出网络爬虫之新见解,先来期生态榜做个小小的期待吧。

Requests

提到 Python 爬虫,就不得不提 requests 库。requests 库是一个基于 urllib 的用于 http 请求的模块,使用 python 语言编写,采⽤ Apache2 Licensed 开源协议。相比 urllib 库,requests 库更加的方便,是一个简单又强大的爬虫包。

项目主页:http://docs.python-requests.org/en/latest/

Requests-HTML

requests-html 和 requests 一脉相承。requests-html 爬虫包基于现有的框架 PyQuery、Requests、lxml、beautifulsoup4 等库进行了二次封装,作者将 requests 的简单,便捷,强大又做了一次升级。

项目地址:https://html.python-requests.org/

Scrapy

Scrapy 是一个使用 Python 编写的,轻量级的,并可扩展的爬虫框架。和爬虫库不同的是,它是一个框架,任何人都可以根据需求方便的修改。Scrapy 使用 Twisted 异步网络库来处理网络通讯,可以很方便的完成网上数据的采集工作,它为我们完成了大量工作,而不需要自己费大力气去开发。

项目主页:https://scrapy.org/

Cola

Cola 是一个分布式的爬虫框架,用户只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。

项目主页:https://github.com/chineking/cola

Pyspider

pyspider 是一个用 Python 实现的功能强大的网络爬虫系统,能在浏览器界面上进行脚本的编写,功能的调度和爬取结果的实时查看,后端使用常用的数据库进行爬取结果的存储,还能定时设置任务与任务优先级等。

项目主页:https://github.com/binux/pyspider

Crawley

Crawley 是 Python 开发出的爬虫框架,该框架致力于改变人们从互联网中提取数据的方式。是基于Eventlet的高速爬虫框架。支持关系型和非关系型数据库如 mongodb、Postgre, Mysql, Oracle, Sqlite等,支持输出 Json, XML 和 CSV 等各种格式。

项目主页:http://project.crawley-cloud.com/

Portia

Portia 是一个开源可视化爬虫工具,它允许任何没有编程基础的人可视化的爬取网页数据。简单地注释你感兴趣的页面,Portia 将创建一个蜘蛛来从类似的页面提取数据。

项目主页:https://github.com/scrapinghub/portia

Newspaper

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

项目主页:https://github.com/codelucas/newspaper

Grab

Grab 是一个站点爬取框架。借助 Grab,你可以构建各种复杂的网页抓取工具,从简单的5行脚本到处理数百万个网页的复杂异步网站抓取工具。Grab 提供一个 API 用于执行网络请求和处理接收到的内容,例如与 HTML 文档的 DOM 树进行交互。

项目主页:http://docs.grablib.org/en/latest/#grab-spider-user-manual

RoboBrowser

一个简单的,Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器。简单来说robobrowser是一个浏览器,没有界面的浏览器。它调用了 Python 的 requests 和 Beautifulsoup库,可以打开网页,点击链接和按钮并且提交表单。

项目主页:https://github.com/jmcarp/robobrowser