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

如何用BeautifulSoup提取Hacker News前30篇文章的有效链接?

提取Hacker News前30篇文章链接的解决方案

你的问题出在抓取了页面所有<a>标签,包括导航栏、投票按钮、用户主页、隐藏按钮等无关链接。想要精准获取文章链接,需要利用Hacker News的页面结构:文章标题都包裹在class="titleline"的<span>标签内,其中的第一个<a>标签就是文章的目标链接。

修正后的代码

from bs4 import BeautifulSoup
import requests

response = requests.get("https://news.ycombinator.com")
yc_webpage = response.text
soup = BeautifulSoup(yc_webpage, "lxml")

# 获取所有标题容器
title_spans = soup.find_all(name="span", class_="titleline")
article_links = []

# 遍历每个标题容器,提取文章链接
for span in title_spans[:30]:  # 限制只取前30篇
    article_a = span.find("a")
    if article_a and "href" in article_a.attrs:
        article_links.append(article_a["href"])

print(article_links)

代码说明

  • 先定位到所有titleline类的span标签,这些是文章标题的容器,避免抓取无关区域的链接
  • 对每个span标签,只提取其中的<a>标签,这才是文章的跳转链接
  • 通过[:30]切片,确保只获取前30篇文章的链接
  • 增加了简单的判断,避免因标签结构异常导致的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:15:43