如何使用BeautifulSoup插入属性?
我该如何使用BeautifulSoup插入一个属性呢?
比如说,想要在一个<table>
标签中插入border="1"
这个属性。
补充说明:
我已经自己解决了这个问题(针对某一类表格):
inTopic = urllib2.urlopen("file:///C:/test/test.html")
content = BeautifulSoup(inTopic)
tlist = content.findAll('table', "myTableClass")
for tbl in tlist:
tbl['border'] = "1"
print tbl.attrs
2 个回答
2
使用 node.attrs['myNewAttr'] = 'my_new_value'
这个方法来设置一个新的属性,比如:
content = BeautifulSoup(text, 'html.parser')
links = content.findAll('a')
for node in links:
node.attrs['myNewAttr'] = 'my_new_value'
在这个例子中:
<ul>
<li><a>text</a</li>
<li><a>text</a</li>
</ul>
将会返回
<ul>
<li><a myNewAttr="my_new_value">text</a</li>
<li><a myNewAttr="my_new_value">text</a</li>
</ul>
4
你觉得这样怎么样:
inTopic = urllib2.urlopen('http://stackoverflow.com/questions/4951331/how-do-i-insert-an-attribute-using-beautifulsoup')
content = BeautifulSoup.BeautifulSoup(inTopic)
tlist = content.findAll('table')
for tbl in tlist:
tbl.attrs.append(('border', 1))
别忘了试试 lxml.html
,它速度快,解析效果很好。