利用DHT網路原理製作bt採集蜘蛛,開源版

2021-09-30 12:00:03 字數 1024 閱讀 5753

由於中文的特殊性,造成了在各大程式語言中都存在編碼轉換的問題,今天我們來**下python中中文編碼如何處理呢

encode()的作用是將unicode編碼的字串轉換為其他編碼格式。

例如: st1.encode("utf-8")  這句話的作用是將unicode編碼的st1編碼為utf-8編碼的字串

decode()的作用是把其他編碼格式的字串轉換成unicode編碼的字串。

例如: st2.decode("utf-8") 這句話的作用是將utf-8編碼的字串st2解碼為unicode編碼的字串

第二,除unicode編碼的字串以外,任何一種編碼的字串要想轉換為其他編碼格式,必須先解碼後編碼

非unicode編碼--> unicode編碼-->非unicode編碼

例如,utf-8編碼的字串st想要轉換為gbk編碼的字串,必須經過以下步驟:

st=st.decode("utf-8") #解碼為unicode編碼

st=st.encode("gbk")  #從unicode編碼編碼為gbk編碼

第三,我們經常使用的utf-8編碼還分為有bom的和無bom的。

第四:關於json檔案的中文編碼。用python讀取json檔案時經常用到json.load()函式,該函式對json檔案的格式是有要求的

1)json檔案是utf-8 without bom編碼的,那麼可以直接用json.load(filename)函式讀取json檔案的內容

2)json檔案是utf-8 with bom編碼的,不能用json.load()函式讀取,json.load()不能正確識別

3)json檔案時其他編碼的,比如gbk, 要把json檔案的編碼格式作為乙個引數傳給json.load():

eg. json.load(filename,"gbk")

第五,怎麼檢視並且設定自己檔案的編碼呢?

介紹乙個個人比較喜歡的工具"nodtepad++",隨便乙個軟體管家裡就與一鍵安裝。

用這個工具你可以方便的檢視自己的檔案的當前編碼,並可以輕鬆轉換成任意其他編碼格式

利用DHT網路原理製作bt採集蜘蛛

dhtcrawler最早的版本有很多問題,修復過的最大的乙個問題是關於erlang定時器的,在dht實現中,需要對每個節點每個peer做超時處理,在erlang中的做法直接是針對每個節點註冊了乙個定時器。這不是問題,問題在於定時器資源就像沒有gc的記憶體資源一樣,是會由於程式設計師的 問題而出現資源...

利用DHT網路原理製作bt採集蜘蛛

我最開始在選用資料庫時,為了不使用第三方庫,打算使用erlang自帶的mnesia。但是因為涉及到字串匹配搜尋,mnesia的查詢語句在我看來太不友好,在經過一些資料查閱後就直接放棄了。效果可以看下具體51搜尋展示結合xunsearch全文檢索技術,可以達到毫秒級的資料搜尋 然後我打算使用couch...

利用DHT網路原理製作bt採集蜘蛛

torrent檔案內的資料結構分為以下幾部分 關於這個網路的工作原理,參看 p2p中dht網路爬蟲以及寫了個 磁力搜尋的網頁。announce tracker的主伺服器 announce list tracker伺服器列表 comment 種子檔案的注釋 comment.utf 8 種子檔案注釋的u...