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

您的位置:首頁技術文章
文章詳情頁

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

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

問題描述

現在采用的是在windows 環境下 采用多線程的方式進行爬取,使用beautifulsoup+lxml進行解析.

N個爬取線程->解析隊列->1個解析線程->存儲隊列->1個存儲線程

整個執行程序的效率卡在計算密集的解析線程中,如果只是增加解析線程數量的話,反而增加線程切換開銷速度變慢。

請問下 有什么辦法可以較為明顯的提升解析效率?

根據兩位大腿的說明 準備采用異步爬取->解析隊列->N個解析進程->存儲隊列->存儲線程

準備開工

問題解答

回答1:

其實我覺得, 你在前面N個爬取線程 可以換成協程/線程池實現, 因為你在頻繁創建線程本省一種性能耗費, 用線程池雖然可以減少這部分的損耗, 但是上下文切換還是無法避免, 所以協程這方面, 應該是比較合適的.1個解析線程 換成 進程池,多開幾個進程去計算密集處理, 其余應該可以不用改, 如果還想再搞, 將核心部分用c/c++ 重寫咯, 希望可以幫到你

回答2:

我的做法是多進程。多進程的好處是當單機性能不夠的時候,可以隨時切換為分布式爬蟲。

回答3:

可以網上找下tornade異步爬蟲吧,我正在用這個

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 望奎县| 天台县| 鄂托克前旗| 共和县| 安乡县| 盘锦市| 新平| 柯坪县| 甘谷县| 凯里市| 苏尼特左旗| 鹰潭市| 吉安市| 明星| 德钦县| 错那县| 饶阳县| 灵丘县| 冷水江市| 平阴县| 大化| 晋州市| 和平县| 壶关县| 鞍山市| 蓝山县| 巩留县| 大连市| 怀来县| 云安县| 修武县| 枣阳市| 邻水| 博野县| 策勒县| 三门峡市| 凭祥市| 石泉县| 景东| 石泉县| 临城县|