如何使用pyquery修改python中的节点属性

发布于 2024-10-29 09:16:10 字数 383 浏览 3 评论 0原文

我想使用 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。

有什么想法吗?或者有其他方法吗?

谢谢

iwant use pyquery to do this.

for example:

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

i want to modify the html to

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

in other words,
just need change img element's src attribute, and get the modified html.

any ideas?or any other method?

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

兮子 2024-11-05 09:16:10

由于 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>'

Since PyQuery is meant you mirror jQuery, perhaps this question would be relevant. Long story short, use the attr() method:

>>> 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>'
你怎么敢 2024-11-05 09:16:10

类似的内容:

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'}

Something like this:

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>

To apply a function to a selection you can use .each(), but note that bare elements are passed to the function:

>>> from __future__ import print_function
>>> tree('img').each(lambda i, n: print(n.attrib))
{'src': 'cccc'}
{'src': '2222'}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文