python网络爬取个人学习指南-(二)

**************************************************************************************************************

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值