您现在的位置是:首页 >技术交流 >golang 和python 在爬虫领域的优缺点对比网站首页技术交流
golang 和python 在爬虫领域的优缺点对比
简介golang 和python 在爬虫领域的优缺点对比
golang 和python 在爬虫领域的优缺点对比
python | golang | |
---|---|---|
并发 | 在爬虫中使用协程并发要看三方库是否支持,使用线程有全局解释性锁,使用进程太重了 | golang的goroutine其实就是协程比线程更小,只要一个go 关键字就可以实现并发 |
领域 | 人工智能,数据处理,运维,自动化。这些热门领域的基础库中没有一个是和网络相关的,导致python 爬虫的重要基础请求库bug 重重,更新迭代慢等缺点 | 云计算,中间件,运维,web 服务。中间件和web服务 的不断发展使go 的网络基础库处于不断更新迭代中 |
基础库对http协议的支持 | 最高支持到http/1.1 | 最高支持到http2.0 |
请求库 | 封装过于臃肿,无法高度自定义需求 | 可以控制连接的每一个细节,自实现代理连接,自定义tls client hello 等 |
内存占用 | 高 | 低 |
cpu利用率 | 高 | 低 |
跨平台 | 如果依赖三方库需要三方库支持才能跨平台 | 交叉编译,极度方便 |
框架 | 爬虫框架众多 | gospider 是一个golang 爬虫神器,拥有python到golang爬虫过渡的所有必需库 |
入门难度 | 难度低 | go 的特性比python 少,语法糖比python 少,关键字比python少,导致go上手比python还快,且go 的高手写的代码和新手写的代码是一样的,代码极易维护 |
为什么网络相关的领域会影响爬虫呢?
拿python举例,python 的web 开发现在日落西山了,国内很多用python开发的网站有的用go开发,有的用其他语言开发。这必定会影响http 协议相关的库的发展。从github 上提的bug ,还有python 基础库现在还不支持http2.0 协议来看,发展的太慢了,爬虫使用请求库获取数据,由于协议上的漏洞很容易被反爬特别强网站发现,如:akamai,px 等
总结
对于爬虫来说golang 才是天选之子
gospider 介绍
gospider 是一个golang 爬虫神器,拥有python到golang爬虫过渡的所有必需库。用于python爬虫从业者快速且无坑的过渡到golang
安装
go get -u gitee.com/baixudong/gospider
gitee地址
https://gitee.com/baixudong/gospider
github地址
https://github.com/baixudong007/gospider
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。