1.URL的清洗
2.cchardet模块
该模块是chardet的升级版,功能和chardet完全一样,用来检测一个字符串的编码。由于是用C和C++实现的,所以它的速度非常快,非常适合在爬虫中用来判断网页的编码。切记,不要相信requests返回的encoding,自己判断一下更放心。
3.traceback模块
try来捕获异常让程序不中断,但是我们又需要看看捕获的异常是什么内容,由此来改善我们的爬虫。这个时候,就需要traceback模块。
比如在downloader()函数里面我们用try捕获了get()的异常,但是,异常也有可能是cchardet.detect()引起的,用traceback.print_exc()来输出异常,有助于我们发现更多问题。
tips
关于抛出异常这个问题,我之前一直是用的
try:
#异常
except Exception,e:
print e
后者只是报了个错,但是却不知道在哪个文件哪个函数哪一行报的错。而前者却会告诉你在哪个文件的哪一行报错