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

如何删除使用Selenium爬取网页元素数据时产生的冗余空格

Selenium爬取内容冗余空格解决方案

方案1:直接清洗提取到的原始文本

你拿到的文本带大量冗余空格/空行,是因为原网页HTML结构中自带大量缩进、换行占位,Selenium提取text时会保留这些原始空白字符,对拿到的元素文本逐行去除首尾空白、过滤空行即可得到干净内容,修改后的代码如下:

from selenium import webdriver

driver = webdriver.Safari()

driver.get("https://iayosb.com/firmalar/anadolu-kompozit-mam-san-ve-tic-a-s/")
article = driver.find_elements_by_xpath("//div[@class='w2dc-fields-group w2dc-fields-group-1']")
for elem in article:
    # 逐行处理文本:去除每行首尾空白、过滤空行
    clean_lines = [line.strip() for line in elem.text.splitlines() if line.strip()]
    for line in clean_lines:
        print(line)

driver.quit()

处理后输出效果:

Telefon:
216 593 17 20 - 21 - 22
Websitesi:
http://www.an-ko.com
Email:
info@anadolukompozit.com

方案2:精准定位字段获取结构化数据

不需要提取整个分组的全部文本,直接定位每个字段的标签和内容,直接拿到无冗余的结构化数据,后续使用更方便:

from selenium import webdriver

driver = webdriver.Safari()
driver.get("https://iayosb.com/firmalar/anadolu-kompozit-mam-san-ve-tic-a-s/")

# 直接定位每个字段容器
fields = driver.find_elements_by_xpath("//div[@class='w2dc-fields-group w2dc-fields-group-1']//div[contains(@class,'w2dc-field')]")
for field in fields:
    # 分别提取字段名和字段值,自动去空白
    label = field.find_element_by_xpath(".//label").text.strip()
    value = field.find_element_by_xpath(".//div[@class='w2dc-field-content']").text.strip()
    print(f"{label} {value}")

driver.quit()

补充说明

如果你使用的是Selenium 4及以上版本,find_elements_by_xpath 等写法已被弃用,需要改用以下写法:

# 先导入By类
from selenium.webdriver.common.by import By

# 定位元素写法替换
article = driver.find_elements(By.XPATH, "//div[@class='w2dc-fields-group w2dc-fields-group-1']")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:15:04