一些Python爬虫工具

爬虫能够简单分为三步骤:请求数据、解析数据和存储数据 。主要的一些工具以下:javascript

请求相关

requestjava

一个阻塞式http请求库。git

Seleniumgithub

Selenium是一个自动化测试工具,能够驱动浏览器执行特定的动做,如点击,下拉等操做。对于一些javascript渲染的页面,这种抓取方式很是有效,作到可见便可爬。web

ChromeDriver、GeckoDriverredis

只有安装了ChromeDriver和GeckoDriver以后,Selenium才能驱动Chrome或者Firefox浏览器来作相应的网页抓取。固然,须要关闭浏览器的更新功能,避免版本不一致。数据库

PhantomJS编程

PhantomJS是一个无界面的、可脚本编程的WebKit浏览器引擎,原生支持多种Web标准:Dom操做、CSS选择器、JSON、Canvas和SVG。Selenium支持PhantomJS,在运行的时候不会再弹出一个浏览器。windows

aiohttp后端

相比于requests,aiohttp是一个提供异步Web服务的库。

 

解析相关

lxml

lxml是Python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,并且解析效率高。

Beautiful Soup

Beautiful Soup能够方便的从网页中提取数据,拥有强大的API和多样的解析方式,在解析时依赖解析器,如:lxml。

pyquery

pyquery提供了和jQuery相似的语法来解析HTML文档,支持CSS选择器,使用方便。

tesserocr

tesserocr是Python的一个OCR识别库,是对tesseract作的一层Python API封装,所以,在安装tesserocr以前,须要先安装tesseract。pip3 install tesserocr pillow命令因为网络安装不了时,能够下载相应的.whl文件,进行pip3 install XXX.whl命令安装tesserocr,再pip3 install pillow。

 

存储库相关

若是想将数据存储到MySQL、MongoDB或Redis中,则须要分别借助PyMySQLPyMongoredis-py或者RedisDump来操做。

 

Web相关

Flask

 Flask是一个轻量级的Web服务程序,简单、易用、灵活,能够用来作一些API服务。咱们可使用Flask+Redis维护动态代理池和Cookies池。

Tornado

Tornado是一个支持异步的Web框架,经过使用非阻塞I/O流,能够支撑成千上万的开放链接,效率很是高。

 

APP爬取相关

Charles

Charles是一个网络抓包工具,相比Fiddler,功能更强大,并且跨平台支持得更好

mitmproxy

mitmproxy是一个支持HTTP和HTTPS的抓包程序,相似Fiddler、Charles的功能,只不过经过控制台的形式操做。另外,mitmproxy还有两个关联组件,一个是mitmdump,它是mitproxy的命令行接口,利用它能够对接Python脚本,实现监听后的处理;另外一个是mitmweb,它是一个Web程序,经过它以清楚地观察到mitmproxy捕获的请求。

 Appium

Appium是移动端的自动化测试工具,相似于Selenium,利用它能够驱动Android、IOS等设备完成自动化测试,好比模拟点击、滑动、输入等操做。

 

 爬虫框架

pyspider

pyspider是国人binux编写的强大网络爬虫框架,带有强大的WebUI、脚本编辑器、任务监控器、项目管理器以及结果处理器,同时支持多种数据库后端、多种消息队列,另外还支持javascript渲染页面的爬取。

Scrapy

Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少须要依赖有Twisted14.0、lxml3.4和pyOpenSSL 0.14。在不一样的平台环境下,所依赖的库也各不相同,因此在安装以前,最好确保把一些基本库安装好。

Scrapy-Splash

Scrapy-Splash是一个Scrapy中支持javascript渲染的工具。

Scrapy-Redis

Scrapy-Redis是Scrapy的分布式扩展模块,经过它能够方便地实现Scrapy分布式爬虫的搭建。

 

部署相关

Docker、Scrapyd、Scrapyd-Client、Scrapyd API、Scrapyrt、Gerapy等。

相关文章
相关标签/搜索