1.URL的清洗
2.cchardet模塊
該模塊是chardet的升級(jí)版,功能和chardet完全一樣,用來(lái)檢測(cè)一個(gè)字符串的編碼。由于是用C和C++實(shí)現(xiàn)的,所以它的速度非??欤浅_m合在爬蟲(chóng)中用來(lái)判斷網(wǎng)頁(yè)的編碼。切記,不要相信requests返回的encoding,自己判斷一下更放心。
3.traceback模塊
try來(lái)捕獲異常讓程序不中斷,但是我們又需要看看捕獲的異常是什么內(nèi)容,由此來(lái)改善我們的爬蟲(chóng)。這個(gè)時(shí)候,就需要traceback模塊。
比如在downloader()函數(shù)里面我們用try捕獲了get()的異常,但是,異常也有可能是cchardet.detect()引起的,用traceback.print_exc()來(lái)輸出異常,有助于我們發(fā)現(xiàn)更多問(wèn)題。
tips
關(guān)于拋出異常這個(gè)問(wèn)題,我之前一直是用的
try:
#異常
except Exception,e:
print e
后者只是報(bào)了個(gè)錯(cuò),但是卻不知道在哪個(gè)文件哪個(gè)函數(shù)哪一行報(bào)的錯(cuò)。而前者卻會(huì)告訴你在哪個(gè)文件的哪一行報(bào)錯(cuò)