原创 使用 Python 標準庫進行性能測試

Profile 和 cProfile 在 Python 標準庫裏面有兩個模塊可以用來做性能測試。 1. 一個是 Profile,它是一個純 Python 的實現,所以會慢一些,如果你需要對模塊進行拓展,那麼這個模塊比較合適。

原创 用Python從零開始實現一個Bloomfilter

簡介 如果你不知道什麼是 Bloomfilter,可以在這裏找到詳盡的描述Bloomfilter 介紹。簡單來說Bloomfilter是一個概率數據結構,功能上類似於集合的一個子集,可以向裏面添加一個元素,或者判斷一個元素是否在其

原创 RESTful Web Services 筆記

000 什麼是Web Service Web Service是一種基於HTTP協議的服務,用戶通過發送HTTP請求服務器上的資源,服務器也會把資源信息放在HTTP響應中返回 給請求者。它實際上是一種調用關係,只

原创 Python 協程 - 1

在協程之前我們有什麼? 協程實際上不是一個新概念,作爲一個併發模型,在很早以前就能看到協程的身影。只是最近纔開始變得火熱起來,因爲它可以很好的處理IO密集型任務,而這符合互聯網行業的業務需求。 在我們重新認識協程之前,先簡短回顧

原创 Python 2.x 字符編碼問題

ASCII,Unicode,UTF-8 和 UTF-16 ASCII是一種我們最爲熟悉的編碼方式,從大一入學學C語言的時候就學過。那麼到底什麼是編碼呢?我們知道數據實際上是以二進制的形式存儲的,而我們人類可讀的卻是特定形式的字符(

原创 Celery 學習筆記(2)- 定時任務

定時任務 Celery 中啓動定時任務有兩種方式,(1)在配置文件中指定;(2)在程序中指定。 # cele.py import celery app = celery.Celery('cele', broker='redis

原创 Bloom Filter 介紹(Bloom Filters by Example)

基礎 Bloom filter 是一個數據結構,它可以用來判斷某個元素是否在集合內,具有運行快速,內存佔用小的特點。 而高效插入和查詢的代價就是 Bloom Filter 是一個概率數據結構: 它可以告訴我們一個元素絕對不在集合

原创 Celery 學習筆記(4)- Workflow

Signature 對象 前面介紹了可以通過 delay 和 apply_async 來執行一個任務,多數情況下這已經足夠使用,但是有時候你希望能夠將任務及其參數傳遞給其它函數時,現有的方法就不夠用了。 在 Celery 中,提

原创 Python 爬蟲教程 4 - 網頁的構成

網頁如何呈現到用戶面前? 在我們瀏覽各種網站的時候,瀏覽器呈現的都是圖文並茂的頁面,其中不少還有動態的動畫效果。 那麼一個網頁是如何從服務器端傳輸到客戶端並展現在你的電腦上的呢?大致有如下幾步: 1. 用戶輸入一個 URL ,

原创 Python 爬蟲教程 3 - 使用 requests

上一篇文章講了什麼是 HTTP 協議,而這次我將告訴你如何使用 Python 通過 HTTP 來獲取互聯網上的資源。 什麼是 requests 簡單的來講 requests 是一個簡單易用的 HTTP 客戶端程序,由 Python

原创 RESTful Web Service最佳實踐

000 RESTful Web Service設計的一般步驟 1. 規劃數據集 2. 將數據集劃分爲資源 3. 用URI爲資源命名 4. 暴露統一接口的子集 5. 設計來自客戶端的表示 6. 設計發給客戶端的表示 7. 用超鏈接把

原创 LeetCode 第50題 Pow(x, n) [log(n)]

問題描述: 計算 pow(x, n),也就是計算 x 的 n次方。 算法思路: 首先來考慮 n 的二進制表示,比如,n 的二進制形式爲 ‘10001011’,那麼 x^n=x^(1+2+8+128)=x^1*x^2*x^8*x^1

原创 Python 爬蟲教程 1 - 前言

寫在最開始 最近開始慢慢的自學爬蟲,一邊學也一邊想寫點什麼,所以在這裏寫下來,也當是對自己學習過程的一個總結。 什麼是爬蟲 互聯網每天都會產生大量的數據,但是互聯網產生的數據大都是非結構化的數據,無法直接用於分析產生價值,所以需要

原创 Celery 學習筆記(3)- 任務和任務執行

任務 任務是 Celery 裏不可缺少的一部分,它可以是任何可調用對象。每一個任務通過一個唯一的名稱進行標識, worker 通過這個名稱對任務進行檢索。任務可以通過 app.task 裝飾器進行註冊,需要注意的一點是,當函數有多

原创 Celery 學習筆記(1)簡介

簡介 Celery 是一個用 Python 編寫的異步的任務調度模塊,它有着簡明的 API,並且有豐富的擴展性,適合用於構建分佈式的 Web 服務。Celery 的工作流程很簡單,你可以給Celery提交一個任務,然後 Cele