1.URL的清洗
2.cchardet模塊
該模塊是chardet的升級版,功能和chardet完全一樣歧蒋,用來檢測一個字符串的編碼醉锄。由于是用C和C++實現(xiàn)的,所以它的速度非沉祝快陕凹,非常適合在爬蟲中用來判斷網(wǎng)頁的編碼。切記鳄炉,不要相信requests返回的encoding杜耙,自己判斷一下更放心。
3.traceback模塊
try來捕獲異常讓程序不中斷迎膜,但是我們又需要看看捕獲的異常是什么內(nèi)容泥技,由此來改善我們的爬蟲。這個時候磕仅,就需要traceback模塊珊豹。
比如在downloader()函數(shù)里面我們用try捕獲了get()的異常,但是榕订,異常也有可能是cchardet.detect()引起的店茶,用traceback.print_exc()來輸出異常,有助于我們發(fā)現(xiàn)更多問題劫恒。
tips
關于拋出異常這個問題贩幻,我之前一直是用的
try:
#異常
except Exception,e:
print e
后者只是報了個錯轿腺,但是卻不知道在哪個文件哪個函數(shù)哪一行報的錯。而前者卻會告訴你在哪個文件的哪一行報錯