**************************************************************************************************************
author:keyinfo
date:2024-09-16 11:00
title:网络信息爬取之前代码初步转换以函数形式
**************************************************************************************************************
此部分为初步实现网页信息捕获和错误信息捕获的函数调用形式
对AI相关提问
问:python代码中AttributeError异常是什么
在 Python 中,`AttributeError`是一种异常类型,表示尝试访问一个对象不存在的属性或方法。
一、出现原因
1. 对象确实没有所访问的属性或方法。例如,在你的代码中,如果网页内容在解析后没有`<title>`标签,那么当尝试访问`content.title`时,就会因为`BeautifulSoup`对象`content`没有`title`属性而引发`AttributeError`。
下面是代码详情:
# 核心代码段
try:
html = urlopen(url)
except Exception as e:
print(f"无法访问链接:{url},错误信息:{e}")
return None
try:
content = BeautifulSoup(html.read(), "html.parser")
result = content.p3
except AttributeError as e:
print(f"在链接 [{url}] 中未找到所需内容,错误信息:{e}")
return None
return result
# 导入库
from urllib.request import urlopen
from bs4 import BeautifulSoup
def get_url_title(url):
# 打印正在处理的链接信息
print(f"****正在处理[{url}]****")
try:
# 尝试打开链接获取网页内容
html = urlopen(url)
except Exception as e:
# 如果出现异常,打印无法访问链接的信息及错误原因
print(f"无法访问链接:{url},错误信息:{e}")
return None
try:
# 读取网页内容并使用 BeautifulSoup 进行解析
content = BeautifulSoup(html.read(), "html.parser")
# 假设你想获取的是 title 标签中的第三个元素
result = content.title
except AttributeError as e:
# 如果出现属性错误,打印未找到所需内容的信息及错误原因
print(f"在链接 [{url}] 中未找到所需内容,错误信息:{e}")
return None
return result
url = input("请输入链接地址:")
output = get_url_title(url)
if output is None:
print("result not found")
else:
print(output)