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

使用HTMLSession爬取仅获1条H4新闻,如何获取Top10新闻?

问题分析

你的代码存在两个核心问题:

  1. 直接遍历所有ul标签,页面内存在大量无关ul,多数不包含目标H4标签,仅第一个匹配的ul输出了内容
  2. 即便找到目标ul,你只提取了每个ul下的第一个H4,而Top10新闻是该ul下多个li项中的H4内容
修复后的代码
from requests_html import HTMLSession

session = HTMLSession()

url = "https://www.bleepingcomputer.com/#nlatest"

r = session.get(url)
r.html.render(sleep=4, scrolldown=5)

# 精准定位存放Top10新闻的ul容器
target_ul = r.html.find('ul.latest-news', first=True)

if target_ul:
    # 获取容器内所有新闻项
    news_items = target_ul.find('li')
    # 遍历提取最多10条新闻标题
    for idx, item in enumerate(news_items[:10], 1):
        try:
            title = item.find('h4', first=True).text
            print(f"{idx}. {title}")
        except AttributeError:
            continue
关键修改说明
  • 精准定位容器:通过ul.latest-news直接锁定目标新闻列表,避免遍历无关ul
  • 遍历新闻项:目标ul下的每个li对应一条新闻,需遍历所有li而非ul本身
  • 控制数量:用news_items[:10]确保最多提取10条新闻
  • 优化异常处理:将宽泛的except改为捕获AttributeError,仅处理找不到H4标签的情况,避免隐藏其他错误

内容的提问来源于stack exchange,提问作者Akshita Kapoor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:55:24