原创 Python 爬蟲教程 2 - HTTP協議

什麼是 HTTP HTTP是一種應用層協議,是一種在網絡中進行數據傳輸時,收發雙方提前達成的某些共同約定,HTTP 協議涵蓋的內容極廣,而這裏我們主要關注 HTTP 在報文格式上的約定。首先會對如何對 HTTP 中資源進行定位,然

原创 數字證書的原理

加密和解密 先說加密。 明文P,加上密碼W一混淆之後,變成密文M 如果不知道W,則無法從M反推回P。也就是無法進行解密。 類似這種加密方式,稱爲對稱加密。也就是加密、解密使用的密碼是一樣的。 實際上加解密並不是直接使用密碼

原创 python屬性查找順序

引言 以前對這一部分的理解比較混亂,查找了一些資料,自我整理一下。 作用域 對於變量的搜索是按照一定順序進行的,同名變量將會存在互相屏蔽的問題,所以需要弄清楚python裏的作用域信息。在python中作用域一共有四個,按照順序被

原创 GO標準庫學習筆記-字符串轉換(strconv)

概述 strconv包中包含了一系列輔助函數,用於字符串類型變量和其他類型變量之間的轉換。 Atoi & Itoa 其中最常用的就是字符串和整型變量的相互轉換。Atoi(string to int),Itoa(int to strin

原创 使用Sphinx爲你的python模塊自動生成文檔

# 前言 Sphinx是一個可以用於Python的自動文檔生成工具,可以自動的把docstring轉換爲文檔,並支持多種輸出格式包括html,latex,pdf等。 安裝 pip install sphinx 創建一個sphinx

原创 GO標準庫學習筆記-錯誤(errors)

概述 在go中沒有異常捕獲機制,而是通過一個單獨的函數返回值來表示錯誤信息。 Error 錯誤類型的接口定義如下: type error interface { Error() string } 這個接口只有一個方法Err

原创 Go標準庫學習筆記-帶緩衝的IO(bufio)

概述 bufio模塊通過對io模塊的封裝,提供了數據緩衝功能,能夠一定程度減少大塊數據讀寫帶來的開銷。 實際上在bufio各個組件內部都維護了一個緩衝區,數據讀寫操作都直接通過緩存區進行。當發起一次讀寫操作時,會首先嚐試從緩衝區獲取數據;

原创 Go標準庫學習筆記-命令行工具(flag)

概述 在運行命令行程序時,通常通過命令行參數對程序運行進行配置。在go程序中使用flag包,可以快速構建命令行程序,對於程序使用者只需要聲明所需命令行參數。 使用示例 創建命令行程序可以分爲兩步: 聲明命令行參數 運行flag.Pars

原创 Go標準庫學習筆記-字符串處理(strings)

概述 字符串是一個十分常用的基礎類型,strings包提供了很多函數對string類型變量的操作。這些函數的調用方式大多類似,通過傳入一個字符串爲參數,在字符串上進行相應的處理。這些函數主要可以分爲下面幾類: 字符串搜索和匹配 字符串拆

原创 Python 內存泄漏檢測

Python 內存泄漏檢測 內存泄漏是指由於程序運行過程中,某些對象沒有正常釋放,成爲了常駐在內存的幽靈。隨着程序的運行,這樣的對象越來越多,直到佔滿整個內存,導致程序退出。 在Python中,由於垃圾回收機制的存在,它的內存分配不像C/

原创 GO標準庫學習筆記-前綴數組(index/suffixarray)

概述 suffixarray模塊提供了基於前綴數組的子串檢索功能,能夠在byte數組中檢索指定子串,並獲得其索引下標。 創建前綴數組 可用通過New方法創建一個前綴數組,方法聲明如下: func New(data []byte) *Ind

原创 Go標準庫學習筆記-跨平臺文件路徑(filepath)

概述 filepath包的功能和path包類似,但是對於不同操作系統提供了更好的支持。filepath包能夠自動的根據不同的操作系統文件路徑進行轉換,所以如果你有跨平臺的需求,你需要使用filepath。 與path包相同的函數 file

原创 Go標準庫學習筆記-文件路徑(path)

概述 path包提供了許多輔助函數來處理UNIX系統文件路徑。 輔助函數 一個unix文件路徑有如下格式<DirName>/<BaseName>分別對應於目錄路徑和基礎路徑,當這個路徑表示一個文件時,BaseName就對應於文件名。 其中

原创 GO標準庫學習筆記-IO工具(ioutil)

概述 前面的io包提供了對輸入輸出設備最基本的抽象,而ioutil在io包的基礎上提供了一系列的函數來應對具體的場景。 數據讀取 ioutil一共提供了三個數據讀取的函數,分別是: - ReadAll,從一個io.Reader讀取所有數

原创 Go標準庫學習筆記-上下文 (context)

概述 context也是併發環境的一個常用標準庫,它用於在併發環境下在協程之間安全的傳遞某些上下文信息。 一個經典的應用場景是服務器模型,當服務器處理接收到的請求時,通常需要併發的運行多個子任務,例如訪問服務器,請求授權等。而這些任務都會