python如何快速爬數(shù)據(jù)?
來(lái)源:
奇酷教育 發(fā)表于:
其實(shí)利用通用技術(shù),多進(jìn)程、多線(xiàn)程和協(xié)程的手段,可以實(shí)現(xiàn)加速爬數(shù)據(jù)。
曾經(jīng)有新聞報(bào)道一個(gè)公司的員工,調(diào)高了線(xiàn)程數(shù),加速爬數(shù)據(jù),導(dǎo)致對(duì)方網(wǎng)站流量監(jiān)控報(bào)警,然后就涼了。
其實(shí)利用通用技術(shù),多進(jìn)程、多線(xiàn)程和協(xié)程的手段,可以實(shí)現(xiàn)加速。
關(guān)于加速需要學(xué)習(xí)的知識(shí)點(diǎn):
1.理解阻塞、非阻塞、同步、異步、并發(fā)、并行概念
2.熟悉python隊(duì)列的使用以及MQ的概念
3.多進(jìn)程、進(jìn)程池和進(jìn)程間通信
4.多線(xiàn)程、線(xiàn)程封裝、線(xiàn)程全局變量、線(xiàn)程互斥、守護(hù)線(xiàn)程以及join的用法
5.協(xié)程、yield關(guān)鍵字、gevent、猴子補(bǔ)丁
6.異步請(qǐng)求輪子
7.常見(jiàn)解決方案:多線(xiàn)+異步(scrapy的原理)或 多進(jìn)程+異步