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

Python爬取span文本时语句反转及换行问题求助

解决方案

问题核心

你遇到两个具体问题:

  • 阿拉伯语文本顺序反转:因阿拉伯语是**从右到左(RTL)**书写体系,HTML中span元素的排列顺序与视觉呈现相反,提取后语句逻辑颠倒。
  • 多余换行与空格:span文本自带\r\n换行符及冗余空白,导致输出格式混乱。

修改后的代码

import re
from bs4 import BeautifulSoup

soup = BeautifulSoup(response.content, 'html.parser', from_encoding='utf-8')
abstract_el = soup.find('div', id='BodyContentPlaceHolder_divText')
spans = abstract_el.find_all('span')

# 反转span列表匹配阿拉伯语阅读顺序
spans_reversed = spans[::-1]

subs = ''
for sub in spans_reversed:
    # 清理文本中的换行符与首尾空白
    clean_text = re.sub(r'[\r\n]+', '', sub.text.strip())
    subs += clean_text

ar_abstract.append(subs)

关键处理说明

  • 修正顺序:通过spans[::-1]反转span元素列表,对齐阿拉伯语从右到左的逻辑,保证语句顺序正常。
  • 清理格式:
    • sub.text.strip():移除文本首尾的空格、换行等空白字符。
    • re.sub(r'[\r\n]+', '', clean_text):用正则替换所有换行符(\r/\n/\r\n)为空,消除多余换行。
    • 移除原代码中subs+= ' '+sub.text的前置空格,避免拼接后出现冗余空白。

最终效果

处理后将得到连续无换行、逻辑正确的目标文本:

حظيت حكومة السيد عبد الكريم الكباريتي التي تم تشكيلها في 4 شباط (فبراير) 1996 باهتمام أردني وإقليمي لم تحظَ به حكومة أردنية أخرى منذ سنوات طويلة، مما يعكس حجم التحديات التي تواجهها هذه الحكومة سواء على المستوى الداخلي أو الإقليمي.

内容的提问来源于stack exchange,提问作者mhj.DA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:52:57