You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas/Python提取DataFrame中URL网页标题时出错求助

问题分析与解决

错误原因

  • 列名大小写不匹配:DataFrame定义的列是'URL',但代码里写的是df['url'](小写),导致找不到对应列。
  • apply方法使用错误:apply需要传入函数对象,而你写的geturl()是直接调用函数,会把函数返回值传给apply,这不符合要求。
  • 缺少异常处理:如果某个URL无法访问、网页没有title标签,会直接抛出错误中断整个流程。

修正后的代码

import pandas as pd
from urllib.request import urlopen
from bs4 import BeautifulSoup

def geturl(x):
    try:
        # 打开URL并解析网页
        with urlopen(x) as response:
            soup = BeautifulSoup(response, 'html.parser')
            # 判断网页是否存在title标签
            if soup.title:
                return soup.title.get_text().strip()
            else:
                return '无标题'
    except Exception as e:
        # 捕获异常,避免单个URL失败导致整体流程中断
        return f'获取失败: {str(e)}'

# 构造DataFrame
data = [['1001','https://msn.com'],['1002','https://google.com'],['1003','https://yahoo.com']]
df = pd.DataFrame(data, columns=['ID', 'URL'])
# 修正列名,传入函数对象给apply
df['title'] = df['URL'].apply(geturl)

print(df)

关键说明

  • 统一列名为'URL',和DataFrame定义保持一致,解决列找不到的问题。
  • apply(geturl)传入的是函数本身,pandas会自动将每一行的URL作为参数传递给geturl函数。
  • 新增try-except异常处理,覆盖网络错误、网页结构异常等情况,保证批量处理时不会因单个URL失败而终止。

内容的提问来源于stack exchange,提问作者120m256

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 06:27:25