python - Python(美丽的汤)提取文本?
问题描述
我想从多个 html 文件的两个标签之间提取一些文本,然后将该文本添加到单独的文件中。
基本思想是我需要将页面的不同部分翻译成不同的语言。
该文本将被翻译,返回,然后需要添加回原来在 html 文件中的位置。
我很确定我应该使用 Beautiful Soup 来做到这一点,但我不知道怎么做。我已经查看了该站点上的其他问题,但是我的一些细节使这变得困难。
- 标签不是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
我希望它同时在多个文件上运行
每个文本片段都应该放在它自己的文件中
我需要以某种方式将该文本剪断(翻译)回html文件。
我什至从哪里开始?我对 Python 还很陌生。
解决方案
- BeautifulSoup 与 XML 配合得很好。
- 您可以使用os.listdir()获取 XML 文件,然后遍历它们并处理每个文件。
- 您可以有一个正在运行的标签计数器并生成一个带有标签号的文件名。
- 您可以在 BeautifulSoup中编写属性(例如 set
attr
或),然后在文档上使用以取回修改后的 XHTML。text
str(soup)
由于这是针对翻译工作的,我假设您将要编写两个非常相似的 Python 脚本。基于 XML 文件的目录,第一个脚本可以提取您需要转换为编号文件的所有文本。第二个脚本将对标签进行完全相同的迭代,但从编号文件中读取文本并将它们写入标签。然后它将修改后的 XHTML 写入一个新文件。
推荐阅读
- java - 禁止 HashSet 允许 JAVA 中的重复对象
- php - 无法使用日期函数获得结果
- python - 将值分配给 numpy 矩阵
- javascript - 在 php 中共享到 facebook 时如何在标题 facebook 帖子中显示名称
- c++ - 使用智能指针实现 AVL 树第 2 部分
- java - 嵌入式 Jetty 服务器中的 TLSv1 支持
- c# - Crystal Report C#期末考试总结
- php - 如何在bootstrap,laravel刀片中为同一行中的元素赋予不同的颜色
- accessibility - 如何防止具有辅助功能的应用程序从应用程序中复制文本?
- voltdb - 当 2 个节点达到 9 个节点中 80% 的内存时,VoltDB 集群暂停