首页 文章

BeautifulSoup修改锚标签到位?

提问于
浏览
0

我想在html文档中获取所有锚标记 . 这些锚标签可以在任何深度的任何地方生活 . 一旦我有链接,我处理它们然后生成一个新的链接 .

我想修改原始HTML以在锚标记中包含这些新链接 .

这是我到目前为止:

soup = BeautifulSoup(...)
links = soup.findAll("a")

for link in links:
    new_link = process_href(a['href'])
    # Now I want to replace this anchor tag href with new_link

# Should print out entire html with the new links
print soup.prettify()

如何实现这一目标?由于每个锚标记位于HTML中的特定位置,是否可以使用BeautifulSoup修改标记?或者基于字符串的解决方案是否会更好地工作(即,将整个HTML转换为String并进行某种字符串替换)?后者的问题是我仍然需要一种方法来单独处理href链接以生成新的链接 .

1 回答

  • 0

    你可以修改汤元素:

    soup = BeautifulSoup(urllib2.urlopen('http://stackoverflow.com/'))
    first_link = soup('a')[0]
    print first_link
    # <a href="//stackoverflow.com">current community</a>
    first_link['href'] = first_link['href'].replace('//', 'http://')
    print first_link
    # <a href="http://stackoverflow.com">current community</a>
    

相关问题