大家好,关于抓取网站源码分享接口很多朋友都还不太明白,今天小编就来为大家分享关于获取网站源码工具的知识,希望对各位有所帮助!
本文以一个小说网站页面为例,提取里面的网址和各章节的名称
将各种数据库解析的速度进行对比,对比对象为以下4种方式:
1>>>正则表达式
2>>>BeautifulSoup(忽略其中的css选择器需调用的select方法)
3>>>parsel(包含使用xpath提取和css选择器提取)
4>>>lxml库etree模块XPath
对比速度时,>表示速度快于>>表示速度远快于=表示速度差不多
———————
操作思路:
1>>>下载一个小说网页后保存为html格式文件,
2>>>依次用不同的解析数据工具提取所需数据并记录耗时.
3>>>模拟对提取到的数据(url和章节名称)进行字符串操作(网址拼接,章节名替换之类的),记录耗时
4>>>将步骤2的耗时数据与步骤3的耗时数据依次对比
6000章的小说,提取url和章节名称
代码如下:
代码1-28
代码30-57
代码57-74
运行结果:
各解析库耗时与对提取的数据进行字符串操作耗时的对比
对提取出的数据进行字符串操作耗时最快(如果列表数据元素为10万个,速度是原来的1/10)
正则>>etree(xpath)=parser(xpath)>parser(css)>>BeautifulSoup
———————
再重复代码15次,比例结果保留2位小数点为:
各比率,保留两位小数点
可以看到,结果跟上面的得到的比例结果,正则和BeautifulSoup速度毫无争议
至此,可以宣布:
对于提取网页源代码的数据速度
正则>>[etree(xpath),parser(xpath),parser(css)]>>BeautifulSoup
———————
题外话:
由于:
请求一个网页时间得到整个页面数据大概在0.15-0.3秒左右,大部分在0.27,慢的有1秒
所以解析库提取数据的耗时一般是比请求网页得到内容的耗时小的,(更别提存储提取到的数据了)
故涉及阻塞时间大于提取数据的时间,异步协程会比多线程,多进程更有优势一点;
反之,亦然.其中细分可见多进程,多线程,异步协程,单线程使用场景一文
文章分享结束,抓取网站源码分享接口和获取网站源码工具的答案你都知道了吗?欢迎再次光临本站哦!
