Python爬虫调试技巧与测试方法(中)有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1588个文字,预计阅读时间需要7分钟。
1. 调试+程序编写完成后,正常运行的概率很小,基本不超过1%。总会存在各种bug,需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值。
1.调试
程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。
第一种方法简单直接粗暴有效,就是用print()把可能有问题的变量打印出来看看:
def foo(s):n = int(s)
print('>>> n = %d' % n)
return 10 / n
def main():
foo('0')
main()
执行后在输出中查找打印的变量值:
$ python err.py>>> n = 0
Traceback (most recent call last):
...
ZeroDivisionError: integer division or modulo by zero
用print()最大的坏处是将来还得删掉它,想想程序里到处都是print(),运行结果也会包含很多垃圾信息。所以,我们又有第二种方法。
本文共计1588个文字,预计阅读时间需要7分钟。
1. 调试+程序编写完成后,正常运行的概率很小,基本不超过1%。总会存在各种bug,需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值。
1.调试
程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。
第一种方法简单直接粗暴有效,就是用print()把可能有问题的变量打印出来看看:
def foo(s):n = int(s)
print('>>> n = %d' % n)
return 10 / n
def main():
foo('0')
main()
执行后在输出中查找打印的变量值:
$ python err.py>>> n = 0
Traceback (most recent call last):
...
ZeroDivisionError: integer division or modulo by zero
用print()最大的坏处是将来还得删掉它,想想程序里到处都是print(),运行结果也会包含很多垃圾信息。所以,我们又有第二种方法。

