Python數據分析及可視化實例之多線程、進程
系列文章總目錄:Python數據分析及可視化實例目錄
1.給蟲蟲們的建議
多線程,多進程,分散式採集,
一般不建議使用,
很容易被遠程伺服器封殺,甚至擊穿底線,
當然,用在本地環境做一些處理可以隨意!
此外,免費代理池每天就那麼十來個,
還不怎麼穩定,訪問速度也比較垃圾。
最後,關於驗證碼,接入打碼平台最好,
驗證碼識別?系列文章結束時會來一發。
最後的最後,要想做到心中無碼的境界,
還的自己擼一個網站,那怕用PHP都行。
2.多線程
# encoding: utf-8n__author__ = yeayee # 2015-06nnfrom collections import dequenimport threading ,timenfrom threading import current_threadnnn# 自定義線程類nclass MyThread(threading.Thread):n def __init__(self, funcs, args, name=):n threading.Thread.__init__(self)n self.funcs = funcsn self.name = namen self.args = argsn def run(self):n self.funcs(*self.args)nnn###接下來就是爬取網頁了ndef getContent(que):n while que:n try:n url = que.popleft() # 取一個URL並將它從隊列裡面剔除n print(爬蟲編號+current_thread().name+",正在爬取:"+url)n time.sleep(10) # 為了演示效果,應用時注釋掉即可n except:n print(爬蟲掉糞坑了,稍等,接著爬!)n pass # 這特么就是錯不悔改榜樣nnque = deque()nvisited = set()nin_urls = [wx_nemoon_01,wx_nemoon_02,wx_nemoon_03,wx_nemoon_04,wx_nemoon_05,wx_nemoon_06,wx_nemoon_07]n# 初步獲取的URLSnnnfor in_url in in_urls:n get_url = http://www.baidu.com/ + in_urln que.append(get_url) # 將要採集的內頁網址加入隊列nnthread=[]nfor i in range(4):n wx_nemoon = MyThread(getContent, (que, ), name=ID + str(i))n thread.append(wx_nemoon)nfor i in range(4):n thread[i].start()nfor i in range(4):n thread[i].join()n
3.多進程
# # encoding: utf-8n__author__ = yeayee # 2015-06nnfrom multiprocessing import Poolnimport timennin_urls = [wx_nemoon_01,wx_nemoon_02,wx_nemoon_03,wx_nemoon_04,wx_nemoon_05,wx_nemoon_06,wx_nemoon_07]n# 初步獲取的URLSnnfull_urls = []nfor in_url in in_urls:n get_url = http://www.baidu.com/ + in_urln full_urls.append(get_url) # 將要採集的內頁完整網址nndef getContent(url):n try:n print(爬蟲正在爬取:+url)n time.sleep(10) # 為了演示效果,應用時注釋掉即可n except:n print(爬蟲掉糞坑了,稍等,接著爬!)n pass # 這特么就是錯不悔改榜樣nnif __name__ == __main__:n pool = Pool(4) # 4個進程n pool.map(getContent, full_urls)n pool.close()n pool.join()n
備註:再次強調慎重使用;至於線程鎖,管道傳參等自己拓展;嗯,還有非同步!
膠水語言博大精深,
本主只得一二為新人帶路,
老鳥可去另一專欄:Python中文社區
新手可查閱歷史目錄:
Python數據分析及可視化實例目錄
最後,別只收藏不關注哈
推薦閱讀:
※數據採集器圈子的競品分析
※【SEO】有了這個工具,數據採集抓取如此簡單,動態代理IP原來是這麼回事
※八爪魚採集入門到熟練——01寫規則前的準備工作
※2017年,數據採集行業發生了哪些事情
※淺談一下最近使用八爪魚採集器遇到的坑(還有對比其他採集軟體和爬蟲)