首页 > 解决方案 > Python(美丽的汤)提取文本?

问题描述

我想从多个 html 文件的两个标签之间提取一些文本,然后将该文本添加到单独的文件中。

基本思想是我需要将页面的不同部分翻译成不同的语言。

该文本将被翻译,返回,然后需要添加回原来在 html 文件中的位置。

我很确定我应该使用 Beautiful Soup 来做到这一点,但我不知道怎么做。我已经查看了该站点上的其他问题,但是我的一些细节使这变得困难。

  1. 标签不是html标签,它们是xml但也有空格

所以例如它就像

<Generic:tagName more-st-uff="Foo_Bar.xx_YY">text to be translated</Generic:tagName>

<Generic:tagName more-st-uff="Foo_Bar.aa_BB">text to be translated</Generic:tagName>

在这种情况下 xx_YY 和 aa_BB 是语言标签,语言缩写_COUNTRY ABBREVIATION

  1. 我希望它同时在多个文件上运行

  2. 每个文本片段都应该放在它自己的文件中

  3. 我需要以某种方式将该文本剪断(翻译)回html文件。

我什至从哪里开始?我对 Python 还很陌生。

标签: pythonhtmlbeautifulsouptranslation

解决方案


  1. BeautifulSoup 与 XML 配合得很好。
  2. 您可以使用os.listdir()获取 XML 文件,然后遍历它们并处理每个文件。
  3. 您可以有一个正在运行的标签计数器并生成一个带有标签号的文件名。
  4. 您可以在 BeautifulSoup中编写属性(例如 setattr或),然后在文档上使用以取回修改后的 XHTML。textstr(soup)

由于这是针对翻译工作的,我假设您将要编写两个非常相似的 Python 脚本。基于 XML 文件的目录,第一个脚本可以提取您需要转换为编号文件的所有文本。第二个脚本将对标签进行完全相同的迭代,但从编号文件中读取文本并将它们写入标签。然后它将修改后的 XHTML 写入一个新文件。


推荐阅读