Python爬虫:(番外)爬虫常用库整理推荐

你不会有猫的

scrapy系列:大名鼎鼎的python爬虫框架,网上成熟教程有很多,我的一些使用心得后期会单开一章。

portia:可视化爬虫。也是scrapinghub系列弄出来的东西,底层是scrapy,比较好玩,基本没有代码难度,后面会单独写一下。

上面两个的官方信息可以看: Scrapinghub Support Center

pyspider: pyspider中文网 一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。这是官方简介,我一年前用过两次,我记得当时还没这么强但也算是主流爬虫框架之一,相信使用体验比较好。


urllib、urllib、requests:应该是不必多说,推荐使用requests(Requests: HTTP for Humans),有官方中文文档。


BeautifulSoup: Beautiful Soup4 经典网页解析工具,多多少少要去了解一点,对应java里的JSoup。

pyquery:PyQuery complete API 基本照搬jQuery,我本人写定向独立爬虫比较喜欢的一种解析库,语法简单友好,关键与jQuery一样的定位方式,可以先在浏览器的console中调好语句然后拷过来就好。

lxml:lxml 用处广泛,不局限于解析HTML。主要定位方式是xpath

关于xpath【xpath教程】我想单独在这说几句。在我看来xpath对爬虫工程师来说是一种必学的定位方式。学习成本,低回报性大。像当你的爬虫数量规模大到一定程度,当你的爬虫复杂度到达一个规模,你去考虑分布式、多进程、异步,考虑将你的解析模块拆分成各个子模块。这个时候你的通信可能会困扰你一下,虽说直接传对象并不困难,一个RPC通信的事情。但如果你将通信内容换成xpath会大大降低通信成本,反正你的目的是定位到页面上的元素。我其他文章实现的列表识别,其模块间通信就是建立在xpth上。

html2text:html2text 见过它很多次,但是没用过,作用就是去除html标签,其替代方案太多。

readability:Readability Python API 基于文本密度的正文提取。很多语言都有这个库。这个库安利下,源码的价值比其使用价值还要大。


pyV8:PyV8 V8引擎,用于执行js。

Mechanize:mechanize  用于模仿浏览器操作,包括操作账号密码登录,用的不多,下面会说它与Selenium的差别。

Selenium:Selenium Documentation 模拟浏览器,支持phantomjs、firefox、chrome等。关于Selenium的一些注意事项,我也会单开一章,毕竟踩了不少坑。

Mechanize与Selenium的区别Mechanize不支持JavaScript,Selenium是一套完整的Web应用程序测试系统,我选Selenium。

你可能感兴趣的:(Python爬虫:(番外)爬虫常用库整理推荐)