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

Python爬取新闻时无法输出链接,请求代码问题排查指导

爬虫无法获取新闻链接的问题排查与修复

问题原因

  1. 错误的属性调用:原代码中items.absolute_links是无效的——items是<h3>标签的BeautifulSoup对象,该对象并没有absolute_links属性。实际新闻链接嵌套在h3内部的<a>标签中,需要先定位到这个a标签才能提取链接。
  2. 相对路径处理:页面返回的链接可能是相对路径,直接使用会无法正常访问,需要拼接成绝对URL。

修复后的代码

import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin

url = 'https://ca.finance.yahoo.com/industries/energy/'

response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

articles = soup.find_all('h3', class_="Mb(5px)")

print(articles)

for item in articles:
    # 定位h3内部的a标签
    a_tag = item.find('a')
    if a_tag:
        title = a_tag.text.strip()
        # 获取相对链接并转为绝对URL
        relative_link = a_tag.get('href')
        absolute_link = urljoin(url, relative_link)
        print(title, absolute_link)

代码说明

  • 使用item.find('a')获取h3标签下的子a标签,确保能拿到链接所在的元素。
  • 用a_tag.get('href')提取a标签的href属性值(相对路径)。
  • 通过urljoin工具将相对路径与原页面URL拼接成可直接访问的绝对链接,避免路径无效的问题。

内容的提问来源于stack exchange,提问作者How To Be Human

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:52:08