如何使用BeautifulSoup一个链接后附加一个标签 [英] How to append a tag after a link with BeautifulSoup

查看:86
本文介绍了如何使用BeautifulSoup一个链接后附加一个标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从这样一个HTML输入启动:

 < P>
< A HREF =htt​​p://www.foo.com>这如果富< / A>
< A HREF =htt​​p://www.bar.com>这如果巴≤; / A>
&所述; / P>

使用BeautifulSoup

,我想在改变这个网站:

 < P>
< A HREF =htt​​p://www.foo.com>这如果富< / A>< B>确定< / B>
< A HREF =htt​​p://www.bar.com>这如果巴≤; / A>< B>确定< / B>
&所述; / P>

是否有可能做到这一点使用BeautifulSoup?

是这样的:

 从BeautifulSoup进口BeautifulSoup
汤= BeautifulSoup(HTML)
在soup.findAll('a')的link_tag:
    link_tag = link_tag +'< B>确定< / B>' #此显然是行不通的


解决方案

您有正确的想法。只是匹配的类型,并做 replaceWith

 从BeautifulSoup进口BeautifulSoup
汤= BeautifulSoup(HTML)
在soup.findAll('a')的link_tag:
    link_tag.replaceWith(link_tag prettify()+'< B>确定< / B>')
打印汤

应该给你:

 < P>
 &所述; A HREF =htt​​p://www.foo.com>
这一点,如果富
&所述; / A>
< B>确定< / B>
 &所述; A HREF =htt​​p://www.bar.com>
这一点,如果酒吧
&所述; / A>
< B>确定< / B>
&所述; / P>

Starting from an Html input like this:

<p>
<a href="http://www.foo.com">this if foo</a>
<a href="http://www.bar.com">this if bar</a>
</p>

using BeautifulSoup, i would like to change this Html in:

<p>
<a href="http://www.foo.com">this if foo</a><b>OK</b>
<a href="http://www.bar.com">this if bar</a><b>OK</b>
</p>

Is it possible to do this using BeautifulSoup?

Something like:

from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
for link_tag in soup.findAll('a'):
    link_tag = link_tag + '<b>OK</b>' #This obviously does not work

解决方案

You have the right idea. Just match up the types, and do replaceWith.

from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
for link_tag in soup.findAll('a'):
    link_tag.replaceWith( link_tag.prettify() + '<b>OK</b>' )
print soup

should give you:

<p>
 <a href="http://www.foo.com">
this if foo
</a>
<b>OK</b>
 <a href="http://www.bar.com">
this if bar
</a>
<b>OK</b>
</p>

这篇关于如何使用BeautifulSoup一个链接后附加一个标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆