python爬虫和golang爬虫性能对比_Scrapy VS Golang 爬虫对比(修正)
前言
之前寫了一篇scrapy和golang爬蟲性能對比,引起了很大的爭議(就是被各位大佬噴的很慘的意思)。其中,很多人提了數(shù)據(jù)庫讀寫的問題,看到大家的評論后不久我又測了一下,把寫數(shù)據(jù)庫的那部分代碼注釋掉后,速度瞬間就快了。當(dāng)時由于沒時間詳細(xì)的測試,就把文章撤了下來,最近我抽時間吧代碼整了一下,有了個新的測試,確實是數(shù)據(jù)的問題,各位可以看看。
上一篇文章的情況
爬蟲的來歷是因為團(tuán)隊需要一批公司名稱的語料,先是用scrapy搭建了一個爬蟲,后面又抱著一種試一試的心態(tài)用golang復(fù)現(xiàn)了一個同樣的爬蟲,對比了一下爬取速度,scrapy版本的和golang版本的最終差距很大,當(dāng)時就很奇怪,做了個記錄發(fā)到知乎上來了,當(dāng)時的情況對比如下。
我詳細(xì)的說明一下情況,線程池方面,scrapy底層用的twisted,默認(rèn)是16個concurrent requests,至于這里是線程實現(xiàn)還是協(xié)程實現(xiàn)我就不計較了。golang是goroutine,是golang自己實現(xiàn)的一個東西。在爬取約650w完整數(shù)據(jù)集的時候,scrapy是采用默認(rèn)設(shè)置,golang是自己實現(xiàn)了一個job/worker模型,設(shè)了個20個worker,相當(dāng)于一個worker用一個goroutine,代碼放在gayhub上。后來我又取了個較小的數(shù)據(jù)量,大約100頁,即2.5w行數(shù)據(jù),然后將scarpy和golang的worker數(shù)都設(shè)為16對比了一下,這就是這四列數(shù)據(jù)的來歷。
另外,還需要說明一下爬取的目標(biāo),爬取目標(biāo)是一個工商登記企業(yè)匯總的
總結(jié)
以上是生活随笔為你收集整理的python爬虫和golang爬虫性能对比_Scrapy VS Golang 爬虫对比(修正)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初次联系导师短信模板_20考研复试如何联
- 下一篇: 【Matlab学习手记】了解Matlab