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

使用requests+BeautifulSoup抓取Hacker News RSS时link字段输出异常问题

问题根因
  • 你选择的html5lib是HTML场景专用解析器,对RSS的XML原生语法适配性差,会将<link>网址</link>结构错误解析为<link/>网址的自闭合标签+游离文本格式,调用.text自然无法获取到链接内容
  • 代码中查找发布时间的标签名拼写错误,RSS标准标签为<pubDate>(D大写),你写的全小写pubdate无法匹配到对应节点,还会额外触发属性不存在报错。
修复后的完整代码
import requests
from bs4 import BeautifulSoup
import json

def rss(x):
    r = requests.get(x)
    # 更换为XML专用解析器,处理RSS类XML数据
    s = BeautifulSoup(r.content, features='xml')
    the_list = []
    for i in s.find_all('item'):
        title = i.find('title').text
        link = i.find('link').text
        # 修正标签名大小写
        date = i.find('pubDate').text

        article = {
            'title' : title,
            'link' : link,
            'date' : date
        }

        the_list.append(article)
    with open('the_list.json','w', encoding='utf-8') as f:
        # 加ensure_ascii=False避免非英文内容乱码
        json.dump(the_list, f, ensure_ascii=False, indent=2)

rss('https://news.ycombinator.com/rss')
补充说明
  • 若运行提示XML解析器不存在,执行pip install lxml安装对应依赖即可
  • 处理RSS、Atom等XML格式数据时,优先使用XML解析器,不要用HTML类解析器,可避免绝大多数标签识别异常问题

内容的提问来源于stack exchange,提问作者mira.162

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:06:02