24

我需要能够修改 HTML 文档中的每个链接。我知道我需要使用它,SoupStrainer但我对如何实现它并不是 100% 肯定。如果有人可以指导我找到一个好的资源或提供一个代码示例,我将不胜感激。

谢谢。

4

3 回答 3

44

也许这样的事情会起作用?(不幸的是,我面前没有 Python 解释器)

from bs4 import BeautifulSoup
soup = BeautifulSoup('<p>Blah blah blah <a href="http://google.com">Google</a></p>')
for a in soup.findAll('a'):
  a['href'] = a['href'].replace("google", "mysite")

result = str(soup)
于 2009-01-20T03:02:34.150 回答
32
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup('<p>Blah blah blah <a href="http://google.com">Google</a></p>')
for a in soup.findAll('a'):
    a['href'] = a['href'].replace("google", "mysite")
print str(soup)

这是 Lusid 的解决方案,但由于他面前没有 Python 解释器,他无法对其进行测试,并且出现了一些错误。我只是想发布工作条件。谢谢卢西德!

于 2009-01-20T03:09:49.097 回答
8

我试过这个并且它有效,避免使用正则表达式来匹配每个更容易'href'

from bs4 import BeautifulSoup as bs
soup = bs(htmltext)
for a in soup.findAll('a'):
    a['href'] = "mysite"

在bs4 docs上检查一下。

于 2014-03-22T00:03:17.017 回答