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

Python网页爬虫JSON结果去除换行符(\n)方法咨询

解决爬虫JSON结果中换行符过多的问题

问题出在使用get_text()获取文本时,HTML中的换行符和多余空白会被保留,导致生成的JSON出现大量\n。以下是两种实用的解决方法:

方法1:利用BeautifulSoup自带参数直接处理

get_text()支持strip和separator参数,能直接去除首尾空白并将内部的换行/多空格替换为单个空格:

修改后的代码:

from bs4 import BeautifulSoup
import json
import requests

url = 'https://storage.googleapis.com/infosimples-public/commercia/case/product.html#'
resposta_final = {}
response = requests.get(url)
parsed_html = BeautifulSoup(response.content, 'html.parser')

# 处理skus字段,去除换行并合并多余空格
resposta_final['skus'] = parsed_html.select_one('.skus-area').get_text(strip=True, separator=' ')
# 处理properties列表
resposta_final['properties'] = [element.get_text(strip=True, separator=' ') for element in parsed_html.select(".pure-table.pure-table-bordered tr")]
# 处理reviews列表
resposta_final['reviews'] = [element.get_text(strip=True, separator=' ') for element in parsed_html.select(".review-box")]

json_resposta_final = json.dumps(resposta_final)
with open('produto.json','w') as arquivo_json:
    arquivo_json.write(json_resposta_final)

方法2:正则表达式精细处理(适合复杂空白场景)

如果需要更灵活的空白处理,比如将连续的换行、制表符等统一替换为单个空格,可以用正则表达式:

修改后的代码:

from bs4 import BeautifulSoup
import json
import requests
import re

url = 'https://storage.googleapis.com/infosimples-public/commercia/case/product.html#'
resposta_final = {}
response = requests.get(url)
parsed_html = BeautifulSoup(response.content, 'html.parser')

def clean_text(text):
    # 替换所有连续空白字符(换行、空格、制表符等)为单个空格,再去除首尾空白
    return re.sub(r'\s+', ' ', text).strip()

resposta_final['skus'] = clean_text(parsed_html.select_one('.skus-area').get_text())
resposta_final['properties'] = [clean_text(element.get_text()) for element in parsed_html.select(".pure-table.pure-table-bordered tr")]
resposta_final['reviews'] = [clean_text(element.get_text()) for element in parsed_html.select(".review-box")]

json_resposta_final = json.dumps(resposta_final)
with open('produto.json','w') as arquivo_json:
    arquivo_json.write(json_resposta_final)

两种方法都能有效去除JSON中的多余换行符,方法1更简洁,方法2适合需要自定义空白处理规则的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:39:16