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

BeautifulSoup提取<td>内容为何含大量空格与换行?

解决爬虫提取表格时内容含大量空白字符的问题

尝试运行以下爬虫代码提取表格数据到列表,但返回的内容包含大量空白字符。已尝试使用strip()和replace(" ","")方法去除多余字符,但并未奏效。请问该如何清理这些空白?或是目标网站的HTML本身存在问题?

from bs4 import BeautifulSoup as bs
import requests
import pandas as pd
import csv


url = 'https://www.felvi.hu/felveteli/ponthatarok_statisztikak/friss_statisztikak/!FrissStatisztikak/index.php/friss_statisztikak/szakonkent?filters%5Bsta_iin_id%5D=1475&filters%5Bsta_kar_id%5D='


result = requests.get(url)
html_code = bs(result.text, "html.parser")

table = html_code.find('table', class_ = "center tblc w100 l")

rows = table.find_all('tr')

list_rows = []

for row in rows: 
    row_td = row.find_all('td')
    for i in row:
        print(i)
    str_cells = row_td
    #clean_text = bs(str_cells,"lxml").get_text()
    #list_rows.append(clean_text)

问题根源

你遇到的空白不全是普通空格,网页里的内容大概率混了换行符(\n)、制表符(\t)或者非断空格( ,对应Unicode编码\u00A0),普通的replace(" ","")只能替换普通空格,对这些特殊空白字符无效,所以之前的方法没用。

修复后的代码

from bs4 import BeautifulSoup as bs
import requests
import re

url = 'https://www.felvi.hu/felveteli/ponthatarok_statisztikak/friss_statisztikak/!FrissStatisztikak/index.php/friss_statisztikak/szakonkent?filters%5Bsta_iin_id%5D=1475&filters%5Bsta_kar_id%5D='

result = requests.get(url)
html_code = bs(result.text, "html.parser")

table = html_code.find('table', class_ = "center tblc w100 l")
rows = table.find_all('tr')

list_rows = []

for row in rows: 
    row_td = row.find_all('td')
    clean_cells = []
    for td in row_td:
        # 获取td的全部文本,包括各种空白字符
        raw_text = td.get_text()
        # 用正则把所有连续空白(换行、制表、非断空格等)替换成单个空格,再去首尾空白
        cleaned_text = re.sub(r'\s+', ' ', raw_text).strip()
        clean_cells.append(cleaned_text)
    list_rows.append(clean_cells)

# 打印处理后的结果
for row in list_rows:
    print(row)

核心处理逻辑

  • 用td.get_text()获取内的完整文本,不管里面有什么空白字符。
  • 正则表达式r'\s+'会匹配所有Unicode空白字符(包括普通空格、换行、制表、非断空格),把连续的空白替换成单个空格,最后用strip()去掉首尾的空白。
  • 如果不想用正则,也可以手动替换非断空格:raw_text.replace('\u00A0', ' ').strip(),但正则能一次性处理所有类型的空白,更省心。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 00:24:26