python的错误提示线怎么出来

Python是一种面向对象、解释型的高级编程语言,由Guido van Rossum于1991年发明。它具有简洁、易读易写的语法,以及强大的库和工具,被广泛应用于Web开发、数据分析、人工智能等领域。

在Python编程中,错误提示线(也称为traceback)是非常重要的工具。它可以帮助开发者快速定位错误所在,并进行修正。本文将简要介绍如何在Python中获取错误提示线,并结合实际案例,展示如何应用错误提示线来调试爬虫程序。

在Python中获取错误提示线非常简单,只需要在程序中添加try...except语句,可以捕获并显示程序发生的异常,并输出错误提示线。例如,下面的代码演示了如何获取一个数值错误的错误提示线:

```python

try:

a = 1 / 0

except Exception as e:

print("Error occurred:", e)

import traceback

print(traceback.format_exc())

```

输出结果如下:

```

Error occurred: division by zero

Traceback (most recent call last):

File "", line 2, in

ZeroDivisionError: division by zero

```

从上述结果中可以看出,错误提示线提供了非常详细的错误信息,包括错误类型、错误所在文件和行数以及具体的错误堆栈信息。这些信息对于开发者来说非常有用,可以帮助开发者快速排查问题。

下面以一个爬取直播数据的案例,演示如何应用错误提示线来调试程序。

假设我们需要从斗鱼直播(https://www.douyu.com)网站上获取某个主播的直播数据(如弹幕数据、礼物数据等),并将数据存储到本地文件中。我们可以使用Python中的requests模块来进行网站访问,使用BeautifulSoup来解析网页内容,并使用pandas模块来进行数据存储。

首先,我们需要确定需要爬取数据的URL,以及需要爬取的数据类型。以获取弹幕数据为例,假设需要爬取主播“苦白色”的直播间(https://www.douyu.com/2663235)的弹幕数据,我们可以在网页上通过开发者工具(F12)查看页面源代码,确定弹幕数据的URL为:https://www.douyu.com/lapi/live/getH5Play/2663235。

接下来,我们编写Python爬虫代码,实现对该URL的访问,并解析获取的JSON数据,并将弹幕数据存储到本地文件中。下面是完整代码:

```python

import requests

import json

import pandas as pd

import time

def get_danmu_data(room_id):

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299',

'referer': 'https://www.douyu.com/{}'.format(room_id)

}

danmu_url = 'https://www.douyu.com/lapi/live/getH5Play/{}'.format(room_id)

try:

res = requests.get(danmu_url, headers=headers)

res.raise_for_status()

data_json = res.content.decode()

data_dict = json.loads(data_json)

danmu_data = data_dict['data']['room']

df = pd.DataFrame(danmu_data['danmu'])

filename = 'danmu_data_{}.csv'.format(time.strftime('%Y%m%d%H%M%S', time.localtime()))

df.to_csv(filename, index=False)

print('弹幕数据已保存到文件:{}'.format(filename))

except Exception as e:

print('异常信息:', e)

import traceback

print('错误提示线:', traceback.format_exc())

if __name__ == '__main__':

get_danmu_data(2663235)

```

上述代码中,我们首先设置了请求头,模拟浏览器请求,避免被网站拦截。接着,我们使用requests模块发起GET请求,获取JSON数据,并使用json模块将JSON数据解析为Python字典。我们从字典中取出弹幕数据并生成pandas DataFrame对象,最后使用to_csv方法,将数据存储到 CSV 文件中。

在运行上述代码时,如果遇到异常错误,程序会输出异常信息和错误提示线。例如,如果我们在请求中使用了错误的URL(如:https://www.douyu.com/lapi/live/getH5Play/1111111),则会得到如下输出信息:

```

异常信息: 404 Client Error: Not Found for url: https://www.douyu.com/lapi/live/getH5Play/1111111

错误提示线: Traceback (most recent call last):

File "D:/Test/douyu.py", line 23, in get_danmu_data

res.raise_for_status()

File "D:\Program Files (x86)\Python38-32\lib\site-packages\requests\models.py", line 953, in raise_for_status

raise HTTPError(http_error_msg, response=self)

requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://www.douyu.com/lapi/live/getH5Play/1111111

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "D:/Test/douyu.py", line 35, in

get_danmu_data(1111111)

File "D:/Test/douyu.py", line 27, in get_danmu_data

print('错误提示线:', traceback.format_exc())

NameError: name 'traceback' is not defined

```

从错误提示线中可以看出,该请求返回了404 Not Found错误,我们可以立即定位问题,并检查代码是否存在错误。

错误提示线是Python编程中非常重要的工具,它可以帮助开发者快速定位错误,从而提高开发效率。通过本文的实例,我们可以了解如何利用错误提示线调试爬虫程序,以及如何从JSON数据中提取所需信息,并将数据存储到 CSV 文件中,为开发者进行数据分析提供了便捷。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/

点赞(82) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部