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 に答える