国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 爬蟲 解析效率如何提升?

瀏覽:120日期:2022-06-29 17:26:48

問(wèn)題描述

現(xiàn)在采用的是在windows 環(huán)境下 采用多線程的方式進(jìn)行爬取,使用beautifulsoup+lxml進(jìn)行解析.

N個(gè)爬取線程->解析隊(duì)列->1個(gè)解析線程->存儲(chǔ)隊(duì)列->1個(gè)存儲(chǔ)線程

整個(gè)執(zhí)行程序的效率卡在計(jì)算密集的解析線程中,如果只是增加解析線程數(shù)量的話,反而增加線程切換開(kāi)銷速度變慢。

請(qǐng)問(wèn)下 有什么辦法可以較為明顯的提升解析效率?

根據(jù)兩位大腿的說(shuō)明 準(zhǔn)備采用異步爬取->解析隊(duì)列->N個(gè)解析進(jìn)程->存儲(chǔ)隊(duì)列->存儲(chǔ)線程

準(zhǔn)備開(kāi)工

問(wèn)題解答

回答1:

其實(shí)我覺(jué)得, 你在前面N個(gè)爬取線程 可以換成協(xié)程/線程池實(shí)現(xiàn), 因?yàn)槟阍陬l繁創(chuàng)建線程本省一種性能耗費(fèi), 用線程池雖然可以減少這部分的損耗, 但是上下文切換還是無(wú)法避免, 所以協(xié)程這方面, 應(yīng)該是比較合適的.1個(gè)解析線程 換成 進(jìn)程池,多開(kāi)幾個(gè)進(jìn)程去計(jì)算密集處理, 其余應(yīng)該可以不用改, 如果還想再搞, 將核心部分用c/c++ 重寫咯, 希望可以幫到你

回答2:

我的做法是多進(jìn)程。多進(jìn)程的好處是當(dāng)單機(jī)性能不夠的時(shí)候,可以隨時(shí)切換為分布式爬蟲。

回答3:

可以網(wǎng)上找下tornade異步爬蟲吧,我正在用這個(gè)

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 柳江县| 瑞昌市| 贡觉县| 合肥市| 金堂县| 象山县| 曲水县| 铜梁县| 芦山县| 武穴市| 沾化县| 时尚| 永年县| 安多县| 合川市| 东乌珠穆沁旗| 慈溪市| 兴宁市| 遵义县| 阜平县| 罗定市| 儋州市| 长沙市| 延安市| 澜沧| 怀仁县| 龙门县| 南通市| 上思县| 望江县| 泰和县| 望江县| 吴桥县| 浦县| 富平县| 互助| 图们市| 应用必备| 酒泉市| 固阳县| 鄂托克前旗|