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

为什么同一段Python爬虫代码爬取不同网页时会输出None与error?

问题原因
  • 你的代码直接遍历<td>标签的子节点,而BeautifulSoup遍历Tag节点的子节点时,会把**文本节点(换行符、空格、纯文本内容等)**也一同返回,这类节点没有get()方法,调用links.get("href")时会触发异常,输出error
  • 除了目标<a>标签外,权游页面的表格第一个<td>内还包含其他无href属性的HTML标签,对这类标签调用get("href")会返回None
  • 两个页面的表格结构存在差异:你之前爬的dark页面的表格第一个<td>内仅包含<a>标签,没有冗余内容所以运行正常,权游页面的表格结构更复杂才会出现异常输出。
修复方案

不要直接遍历<td>的所有子节点,而是直接定位<td>内的所有<a>标签即可,修改后代码如下:

import requests
from bs4 import BeautifulSoup

page = requests.get("https://www.baiscopelk.com/tv-series/game-of-thrones/")
soup = BeautifulSoup(page.content, 'html.parser')

column = []

for tr in soup.find("table" , class_="aligncenter").find_all("tr") :
    # 直接找第一个td下的所有a标签,过滤其他无关节点
    for links in tr.find_all('td')[0].find_all('a'):
        try:
            print(links.get("href"))
        except:
            print("error")

内容的提问来源于stack exchange,提问作者Kariyek Newe hutto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 13:36:10