一些Python爬虫工具

2019/05/25 23:49
阅读数 12

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

请求相关

request

一个阻塞式http请求库。

Selenium

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

ChromeDriver、GeckoDriver

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

PhantomJS

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

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等。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部