Python多程式抓取全國郵政編碼和長途區號
由於Python設計的限制(就是我們們常用的CPython)最多隻能用滿1個CPU核心。Python提供了非常好用的多程式包multiprocessing,你只需要定義一個函式,Python會替你完成其他所有事情。藉助這個包,可以輕鬆完成從單程式到併發執行的轉換。使用程式池可以讓你跑滿多核CPU,而且使用方法非常簡單。
Show You The Code:
import multiprocessing
import time
def func(msg):
for i in xrange(3):
print msg
time.sleep(1)
return "done " + msg
if __name__ == "__main__":
pool = multiprocessing.Pool(processes=4)
result = []
for i in xrange(10):
msg = "hello %d" %(i)
result.append(pool.apply_async(func, (msg, )))
pool.close()
pool.join()
for res in result:
print res.get()
print "Sub-process(es) done."
processes=4是最多併發程式數量,使用Pool,還需要關注每個程式的執行結果。下面以多程式抓取全國郵政編碼和長途區號為例。目標站點:http://www.ip138.com
使用以下語句匯入多執行緒模組:
from multiprocessing.dummy import Pool as ThreadPool
multiprocessing包是Python中的多程式管理包,這個模組表示像執行緒一樣管理程式,這個是multiprocessing的核心,它與threading很相似,對多核CPU的利用率會比threading好的多。Pool類可以提供指定數量的程式供使用者呼叫,當有新的請求提交到Pool中時,如果池還沒有滿,就會建立一個新的程式來執行請求。如果池滿,請求就會告知先等待,直到池中有程式結束,才會建立新的程式來執行這些請求。
Pool類中的map方法,與內建的map函式用法行為基本一致,它會使程式阻塞直到返回結果。雖然第二個引數是一個迭代器,但在實際使用中,必須在整個佇列都就緒後,程式才會執行子程式。map函式用法如下:
map(func, iterable[, chunksize=None])
獲取文字內容:
對郵政編碼進行解析:
獲取全國郵編結果如下:
原文釋出時間為:2016-10-28本文來自雲棲社群合作伙伴“Python中文社群”,瞭解相關資訊可以關注“Python中文社群”微信公眾號
相關文章
- 全國省市區資料庫,帶拼音,簡稱,行政編碼,郵政編碼等資料庫
- python處理抓取中文編碼和判斷編碼Python
- 80行Python程式碼搞定全國區劃程式碼Python
- 全國郵編區號查詢系統的破解! (550字)
- [譯]編碼,編碼,編碼!提高程式設計技能的唯一途徑程式設計
- 能夠提取郵政編碼的正規表示式程式碼例項
- 基於python編寫的天氣抓取程式Python
- Python 抓取微信公眾號賬號資訊Python
- python中單引號,雙引號,多引號區別Python
- python多工抓取圖片Python
- 使用 Python 編寫多執行緒爬蟲抓取百度貼吧郵箱與手機號Python執行緒爬蟲
- 多級編號
- 學習編碼需要多長時間?
- python多程式簡介,和VNPY多程式引數優化程式碼分析Python優化
- 考ocm走原廠途徑和wdp途徑的區別
- PHP多程式程式設計(3):多程式抓取網頁的演示PHP程式設計網頁
- ==和is的區別 以及編碼和解碼
- 10 個 Python IDE 和程式碼編輯器PythonIDE
- Python中 單引號,雙引號和三引號的區別Python
- Python編碼和UnicodePythonUnicode
- 網上交易中帳號和密碼被盜的解決途徑(轉)密碼
- python 安全編碼&程式碼審計Python
- 考ocp走原廠途徑和wdp途徑的區別以及價格
- Python的多程式和多執行緒Python執行緒
- 搞定python多執行緒和多程式Python執行緒
- 全國汽車牌照號詳解細表(各省市區)
- python程式碼混淆與編譯Python編譯
- python教程3.3:字元和編碼Python字元
- 【Python】Python抓取分享頁面的原始碼示例Python原始碼
- 低程式碼和無程式碼的區別
- 利用python指令碼(xpath)抓取資料Python指令碼
- 手機號碼和電話號碼合法性驗證程式碼
- python 多程式和多執行緒學習Python執行緒
- 多Github賬號指定ssh-key提交程式碼Github
- 多執行緒和多程式的區別(小結)執行緒
- Python通過代理多執行緒抓取圖片Python執行緒
- python如何換行編寫程式碼Python
- python基礎之字串和編碼Python字串