爬蟲python入門 如何優(yōu)化Python爬蟲的速度?
如何優(yōu)化Python爬蟲的速度?您可以評估爬蟲是Io密集型還是CPU密集型。IO密集型:程序?qū)⒋蟛糠謺r間用于等待IO,如網(wǎng)絡(luò)IO,即HTTP請求、磁盤IO,即文件讀寫等CPU密集型:程序?qū)⒋蟛糠謺r間用
如何優(yōu)化Python爬蟲的速度?
您可以評估爬蟲是Io密集型還是CPU密集型。
IO密集型:程序?qū)⒋蟛糠謺r間用于等待IO,如網(wǎng)絡(luò)IO,即HTTP請求、磁盤IO,即文件讀寫等
CPU密集型:程序?qū)⒋蟛糠謺r間用于CPU計算,如文本處理、數(shù)值計算等
如果是IO密集型,然后您可以通過線程池或協(xié)程池來使用函數(shù)的這一部分來實現(xiàn)并發(fā),從而提高了速度。
但是,這里的網(wǎng)絡(luò)IO有一個前提。你的帶寬不是你的爬蟲的瓶頸。
如果這是CPU密集型的,那么這部分工作可以通過進(jìn)程池(多進(jìn)程)并行處理,從而提高速度。多處理意味著你的機(jī)器是多核的。
不過,還是有一些地方值得優(yōu)化,比如一些庫的選擇,比如靚湯。雖然它非常方便,但是有更快的實現(xiàn)方法,比如selectolax,它要快得多。
如果你不能判斷,先多線程,然后多進(jìn)程。
如果單臺機(jī)器無法解決,請使用工作隊列,例如cell。多機(jī)并行,當(dāng)然可以提高速度,而且是橫向擴(kuò)展,當(dāng)然這也要讓你的任務(wù)可以分布。
Python爬蟲好學(xué)嗎?
關(guān)于Python爬蟲,有很多第三方庫,比如scratch等,我們寫了一系列關(guān)于爬蟲的文章,可以參考學(xué)習(xí)https://m.toutiaocdn.com/i6612149341303865859/?app=newsuarticle&timestamp=1599008220&useuunewustyle=1&reqid=202009020857002103422021488be6&groupid=6612149341303865859&ttfrom=copylink&utmsource=copylink&utmmedium=toutiaoios&utmcampaign=client在許多情況下,性能不是瓶頸。大約80%的應(yīng)用程序不需要高性能。