【问题标题】:BeautifulSoup - adding attribute to tagBeautifulSoup - 为标签添加属性
【发布时间】:2013-07-04 02:01:25
【问题描述】:

在这里问你一个问题,我想在这里给一个标签添加一个属性,想知道我是否可以使用 BeautifulSoup 方法,或者应该使用纯字符串操作。

一个例子可能会说明这一点,因为这是一个奇怪的解释。

HTML 代码现在的样子:

<option value="BC">BRITISH COLUMBIA</option> 

我希望它看起来如何:

<option selected="" value="BC">BRITISH COLUMBIA</option> 

感谢您的帮助!

【问题讨论】:

    标签: python html tags attributes beautifulsoup


    【解决方案1】:

    BeautifulSoup 很容易 :)

    >>> from bs4 import BeautifulSoup
    >>> soup = BeautifulSoup('<option value="BC">BRITISH COLUMBIA</option>')
    >>> soup.find('option')['selected'] = ''
    >>> print soup
    <html><body><option selected="" value="BC">BRITISH COLUMBIA</option></body></html>
    

    属性可以看作字典。所以我们有{'value':'BC'},要给字典添加一个值,我们只需要dict[key] = value

    【讨论】:

    • 太好了,谢谢!当我有你在这里时,如果我已经浏览了一个页面,只在其中搜索了这些省份,创建了它们的列表。我发现其中一些是我想要的标签,还有一些是“可导航字符串”,它们都是“u'\n'”,我不知道它们来自哪里。有什么办法摆脱它们吗?
    • @KelanPoten-Coyle 您可能可以过滤列表:[i for i in the_list if i != u'\n']。或类似的东西。或者,您可能需要在获取省份时指定 find_all 搜索(我假设您使用的是 find_all)
    猜你喜欢
    • 2018-10-04
    • 1970-01-01
    • 2018-08-27
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多