python爬虫工具集合

python爬虫工具集合

大家一起来整理吧!强烈建议PR。这是初稿,总是有很多问题,而且考虑不全面,希望大家支持!
源文件
2018-8-25 23:59:26
建议关注仓库,有结构性的调整

主要针对python3

常用库

获取目标

  • chrome/firefox

    • chrome开发者工具小技巧

    • 史上最全的Chrome使用技巧集锦

  • fiddler

    • project

    • download-unofficial

    • download-official

    • articles

    • Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,使用Fiddler无论对开发还是测试来说,都有很大的帮助。Fiddler4基于4.0的.NET。

  • wireshark

    • download

    • articles

    • Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

开始下载

  • urllib

    • Urllib是python提供的一个用于操作url的模块。

    • 在python2中,有urllib库和urllib2库。在python3中,urllib2合并到urllib库中,我们爬取网页的时候,经常用到这个库。

    • urllib库在python2与python3中的区别

  • urllib3

    • github

    • urllib 3是一个强大的、健全友好的Python HTTP客户端。大多数Python系统已经使用了urllib 3,您也应该使用urllib 3,urllib 3带来了Python标准库所缺少的许多关键特性。

  • requests

    • github

    • doc

    • Requests 允许你发送纯天然,植物饲养的 HTTP/1.1 请求,无需手工劳动。你不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码。Keep-alive 和 HTTP 连接池的功能是 100% 自动化的,一切动力都来自于根植在 Requests 内部的 urllib3。

  • requests-html

    • github

    • requests-html 是基于现有的框架 PyQuery、Requests、lxml、beautifulsoup4等库进行了二次封装,作者将Requests设计的简单强大的优点带到了该项目中。(By 虫师)

验证码识别

  • PIL

  • opencv

  • pybrain

  • 打码平台

文本解析

  • beautiful soup

    • doc

    • Beautiful Soup 提供一些简单的、python 式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。Beautiful Soup 自动将输入文档转换为 Unicode 编码,输出文档转换为 utf-8 编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup 就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。Beautiful Soup 已成为和 lxml、html6lib 一样出色的 python 解释器,为用户灵活地提供不同的解析策略或强劲的速度。

  • lxml

    • doc

    • lxml库结合libxml2快速强大的特性,使用xpath语法来进行文件格式解析,与Beautiful相比,效率更高。

  • pyquery

    • github

    • doc

    • PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严格实现。语法与 jQuery 几乎完全相同.

  • re

    • python内置

    • 指南

    • 正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序员们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。

提速处理

  • 并发编程

    • 多进程多线程介绍

    • 进程线程异步

    • 同步

      • threading

      • multiprocessing

    • 异步

      • aiohttp

      • gevent

  • Queue

    • python内置

    • Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递

数据存储

  • 数据库

    • pymysql

    • redis

    • sqlalchemy(ORM)

数据处理

  • numpy

  • pandas

  • matplotlib

  • wordcloud

自动化测试

  • selenium

    • doc

    • webdriver

    • Selenium 是自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。换句话说叫 Selenium 支持这些浏览器驱动。Selenium支持多种语言开发。

  • htmlunit

    • sourceforge

    • HtmlUnit是一个无界面浏览器Java程序。它为HTML文档建模,提供了调用页面、填写表单、单击链接等操作的API。就跟你在浏览器里做的操作一样。HtmlUnit不错的JavaScript支持(不断改进),甚至可以使用相当复杂的AJAX库,根据配置的不同模拟Chrome、Firefox或Internet Explorer等浏览器。HtmlUnit通常用于测试或从web站点检索信息。

    • httpClient的局限性:对于使用java实现的网页爬虫程序,我们一般可以使用apache的HttpClient组件进行HTML页面信息的获取,HttpClient实现的http请求返回的响应一般是纯文本的document页面,即最原始的html页面。对于一个静态的html页面来说,使用httpClient足够将我们所需要的信息爬取出来了。但是对于现在越来越多的动态网页来说,更多的数据是通过异步JS代码获取并渲染到的,最开始的html页面是不包含这部分数据的。(By johnson_moon)

  • headless:Headless 提供一种无 GUI 的纯浏览器环境,对于 Web 应用和网页的自动化测试非常有用。

    • Chrome-headless 模式

      • chromedriver download1

      • chromedriver download2

      • chromedriver 与Chrome版本的对应关系

      • 官方介绍

      • Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致。(By 虫师)

    • Firefox-headless 模式

      • geckodriver

      • 官方介绍1

      • 官方介绍2

  • phantomjs

    • 【NOTE】该项目目前处于停滞状态,已经不被新版 selenium 支持了

    • github

    • PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器 做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等, 同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。PhantomJS的用处可谓非常广泛,诸如前端无界面自动化测试(需要结合 Jasmin)、网络监测、网页截屏等。

高级框架

  • pyspider

    • github

    • doc

    • pyspider中文网

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

  • scrapy

    • github

    • doc

    • Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

开发环境

  • spyder

    • github

    • doc

    • 汉化

    • Python数据科学集成开发环境。

  • ipython

    • github

    • ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。它提供了一个强大的python交互式shell和供Jupyter notebooks使用的一个Jupyter内核(IPython notebook)

  • jupter notebook

    • github

    • doc

    • jupyter-themes

    • Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。

关于爬虫

  • 本系列教程介绍使用Python及相关为实现网络爬虫。

  • 如何成为一名爬虫工程师

  • 爬虫常用工具

    • curl

    • postman、paw

    • curl to requests

    • python -m “json.tool”

    • Proxifier

一些建议

  • 延时

  • 异常处理

你可能感兴趣的:(python爬虫工具集合)