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

如何用Python BeautifulSoup删除子元素及谷歌翻译原文?

2. 删除谷歌翻译原文无效的问题解决

谷歌翻译的页面结构是动态生成的,class名经常带随机后缀,这很可能是你代码无效的原因。我先模拟常见的谷歌翻译HTML结构,给你正确的处理方案:

第一步:分析谷歌翻译的HTML结构(典型示例)

谷歌翻译的原文通常嵌套在类似这样的容器里:

<div class="gt-c gt-c-mk gt-c-mk-en">
    <div class="gt-src-wrap gt-src-wrap-ptr">
        <span class="gt-src">Hello World</span>
    </div>
    <div class="gt-res-wrap">
        <span class="gt-res">你好世界</span>
    </div>
</div>

注意这里的gt-src-wrap后面可能带随机后缀gt-src-wrap-ptr,直接用完整class名匹配会失败。

第二步:正确的删除代码

用lambda函数做部分class匹配,就能避开动态后缀的问题:

from bs4 import BeautifulSoup

# 模拟从谷歌翻译页面获取的HTML
page_html = """
<div class="gt-c gt-c-mk gt-c-mk-en">
    <div class="gt-src-wrap gt-src-wrap-ptr">
        <span class="gt-src">Hello World</span>
    </div>
    <div class="gt-res-wrap">
        <span class="gt-res">你好世界</span>
    </div>
</div>
"""

soup = BeautifulSoup(page_html, 'html.parser')

# 定位原文容器(匹配包含gt-src-wrap的class)
original_container = soup.find('div', class_=lambda x: x and 'gt-src-wrap' in x)
if original_container:
    original_container.decompose()  # 删除整个原文容器

# 或者直接定位原文文本标签
original_text = soup.find('span', class_=lambda x: x and 'gt-src' in x)
if original_text:
    original_text.decompose()

print(soup.prettify())

可能的其他问题排查

如果还是无效,大概率是你获取的HTML里还没加载出原文元素:

  • 如果你用爬虫直接请求页面,谷歌翻译的内容是JS动态渲染的,静态请求拿不到完整HTML,这时候需要用Selenium等工具模拟浏览器加载页面
  • 用Selenium的话,记得加等待,确保原文元素加载完成后再获取HTML:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://translate.google.com/")

# 等待原文容器加载完成
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CLASS_NAME, "gt-src-wrap")))

# 再获取页面HTML进行处理
page_html = driver.page_source
# 后续BeautifulSoup处理代码同上...

driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:16:44