(go语言爬虫对比python)(go 语言 爬虫)

本文以一个小说网站页面为例,提取里面的网址和各章节的名称

将各种数据库解析的速度进行对比,对比对象为以下4种方式:

1>>>正则表达式

2>>>BeautifulSoup(忽略其中的css选择器需调用的select方法)

3>>>parsel(包含使用xpath提取和css选择器提取)

4>>>lxml库etree模块XPath

对比速度时, >表示 速度快于 >>表示速度远快于 =表示速度差不多

---------------------

操作思路:

1>>>下载一个小说网页后保存为html格式文件,

2>>>依次用不同的解析数据工具提取所需数据并记录耗时.

3>>>模拟对提取到的数据(url和章节名称)进行字符串操作(网址拼接,章节名替换之类的),记录耗时

4>>>将步骤2的耗时数据与步骤3的耗时数据依次对比

(go语言爬虫对比python)(go 语言 爬虫)

6000章的小说,提取url和章节名称

代码如下:

(go语言爬虫对比python)(go 语言 爬虫)

代码1-28

(go语言爬虫对比python)(go 语言 爬虫)

代码30-57

(go语言爬虫对比python)(go 语言 爬虫)

代码57-74

运行结果:

(go语言爬虫对比python)(go 语言 爬虫)

各解析库耗时与 对提取的数据进行字符串操作耗时的对比

对提取出的数据进行字符串操作耗时最快(如果列表数据元素为10万个,速度是原来的1/10)

正则 >> etree(xpath) = parser(xpath) > parser(css) >> BeautifulSoup

---------------------

再重复代码15次,比例结果保留2位小数点为:

(go语言爬虫对比python)(go 语言 爬虫)

各比率,保留两位小数点

可以看到,结果跟上面的得到的比例结果,正则和BeautifulSoup速度毫无争议

至此,可以宣布:

对于提取网页源代码的数据速度

正则 >>[ etree(xpath),parser(xpath), parser(css)] >> BeautifulSoup

---------------------

题外话:

由于:

请求一个网页时间得到整个页面数据大概在0.15-0.3秒左右,大部分在0.27,慢的有1秒

所以解析库提取数据的耗时 一般是比 请求网页得到内容的耗时 小的,(更别提存储提取到的数据了)

故涉及阻塞时间 大于提取数据的时间,异步协程会比多线程,多进程更有优势一点;

反之,亦然. 其中细分可见一文

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者瓜皮引所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(go语言爬虫对比python)(go 语言 爬虫)
本文链接:https://www.51qsb.cn/article/dvjibc.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-07-24
下一篇2023-07-24

你可能还想知道

发表回复

登录后才能评论