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

Python BeautifulSoup如何爬取表格td标签内包含的a标签链接

网页抓取td标签文本及内部a链接的实现方法

你原有代码中将row_td转为字符串后二次解析的操作会丢失原本的DOM标签结构,导致无法提取a标签链接,直接基于原始的td元素对象操作即可实现同时提取文本和内部链接,修改后的代码如下:

from urllib.request import urlopen
from urllib.parse import urljoin
from bs4 import BeautifulSoup
base_url = "http://eecs.qmul.ac.uk/postgraduate/programmes/"
html = urlopen(base_url)
soup = BeautifulSoup(html, 'lxml')

table_list = []
rows = soup.find_all('tr')

for row in rows:
    tds = row.find_all('td')
    row_data = []
    for td in tds:
        # 提取td文本
        cell_text = td.get_text(strip=True)
        # 提取td内部a标签的链接
        cell_link = ''
        a_tag = td.find('a')
        if a_tag and a_tag.has_attr('href'):
            # 相对路径转绝对路径
            cell_link = urljoin(base_url, a_tag['href'])
        # 每个单元格存为(文本, 链接)的元组,也可以根据需要改成字典
        row_data.append((cell_text, cell_link))
    table_list.append(row_data)

# 打印查看结果
for row in table_list:
    print(row)

关键改动说明

  • 取消了td列表转字符串后二次解析的冗余操作,直接操作原始的td元素,保留了完整的标签结构
  • 每个单元格单独处理,同时存储文本内容和对应链接,没有链接的单元格链接字段赋值为空字符串
  • 新增了相对路径转绝对路径的逻辑,避免爬取到的相对链接无法直接使用
  • 你也可以根据自己的需求调整存储结构,比如将每行数据存为字典,或者只在有a标签的单元格存储链接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:15:03