标签:标准 维护 android 识别 动态代理 strong pymysql tps mit
爬虫可以简单分为三步骤:请求数据、解析数据和存储数据 。主要的一些工具如下:
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。
如果想将数据存储到MySQL、MongoDB或Redis中,则需要分别借助PyMySQL、PyMongo、redis-py或者RedisDump来操作。
Web相关
Flask
Flask是一个轻量级的Web服务程序,简单、易用、灵活,可以用来做一些API服务。我们可以使用Flask+Redis维护动态代理池和Cookies池。
Tornado
Tornado是一个支持异步的Web框架,通过使用非阻塞I/O流,可以支撑成千上万的开放连接,效率非常高。
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等。
标签:标准 维护 android 识别 动态代理 strong pymysql tps mit
原文地址:https://www.cnblogs.com/aaron-shu/p/4191280.html