2

我想使用 pyquery 来做到这一点。

例如:

html='<div>arya stark<img src="1111"/>ahahah<img src="2222"/></div>'
a=PyQuery(html)

我想将html修改为

<div>arya stark<img src="aaaa"/>ahahah<img src="bbbb"/></div>

也就是说,只需要改变img元素的src属性,就可以得到修改后的html。

任何想法或任何其他方法?

谢谢

4

2 回答 2

2

由于 PyQuery 意味着你镜像 jQuery,也许这个问题是相关的。长话短说,使用attr()方法:

>>> html='<div>arya stark<img src="1111"/>ahahah<img src="2222"/></div>'
>>> a=PyQuery(html)
>>> a.outerHtml()
'<div>arya stark<img src="1111">ahahah<img src="2222"></div>'
>>> for img in a('img'):
...     PyQuery(img).attr('src', "whatever")
...
[<img>]
[<img>]
>>> a.outerHtml()
'<div>arya stark<img src="whatever">ahahah<img src="whatever"></div>'
于 2011-04-01T19:47:19.070 回答
0

像这样的东西:

import pyquery

html = '<div>arya stark<img src="1111"/>ahahah<img src="2222"/></div>'
tree = pyquery.PyQuery(html)
tree('img:first').attr('src', 'cccc')
print str(tree)

<div>arya stark<img src="cccc"/>ahahah<img src="2222"/></div>

要将函数应用于选择,您可以使用.each(),但请注意将裸元素传递给函数:

>>> from __future__ import print_function
>>> tree('img').each(lambda i, n: print(n.attrib))
{'src': 'cccc'}
{'src': '2222'}
于 2011-04-01T20:22:22.013 回答