栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Beautiful Soup Python模块用纯文本替换标签

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Beautiful Soup Python模块用纯文本替换标签

适用于您的特定示例的方法是:

from BeautifulSoup import BeautifulSoupht = '''<div id="abc">    some long text goes <a href="/"> here </a> and hopefully it     will get picked up by the parser as content</div>'''soup = BeautifulSoup(ht)anchors = soup.findAll('a')for a in anchors:  a.previousSibling.replaceWith(a.previousSibling + a.string)results = soup.findAll(text=lambda(x): len(x) > 20)print results

发出

$ python bs.py[u'n    some long text goes  here ', u' and hopefully it n    will get picked up by the parser as contentn']

当然,你可能需要采取多一点关怀,即,如果没有

a.string
,或者
a.previousSibling
None
-你需要合适的
if
语句来采取这种极端情况的照顾。但我希望这个总体思路能对您有所帮助。(事实上,你可能想
合并 下一个 兄弟,如果它是一个字符串-与您的启发式不知道如何播放
len(x) >20
,但说,例如,你有两个9个字符的字符串与
<a>
中间包含5个字符的字符串,也许您想将其作为“
23个字符的字符串”使用呢?我不知道是因为我不理解您启发式搜索的动机)。

我想除了

<a>
标签,您还希望删除其他标签,例如
<b>
<strong>
,也许
<p>
和/或
<br>
,等等…?我想这也取决于启发式技术背后的实际想法!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/662309.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号