bir dizeden html okumak için LXML kullanmak ve sonra tüm img etiketlerini bulmaya, görüntü src özniteliği güncellemek ve her resim etrafında hiper bağlantı eklemek çalışıyorumLxml piton yük html başlığı ve gövdesi olmadan dize ve eklemek eleman etrafında hedeflenen elemanları
nedenle bu,
<img src="old-value" />
karşı karşıyayım bu
<a href=""><img src="new-value" /></a>
sorunu olacak ilk html dize, yüklemek için etree.HTML kullanıyorum, iki bulduğu f ya da bir nedeni html etiketinin kendisine ve html etiketine beden etiketi ekliyor. Bunu otomatik olarak meydana gelmeden otomatik olarak yüklemenin bir yolu var mı?
başka sorun
i resim etiketi etrafında hiper link öğesi ekleyin, nasıl çözmek mümkün değilim, aşağıda denedik ama img etiketitree = etree.HTML(self.content)
imgs = tree.xpath('.//img')
thm = "new-value"
for img in imgs:
img.set('src', thm)
a = etree.Element('a', href="#")
img.insert(0, a)
herhangi bir içinde hiper bağlantı elemanı eklersiniz tavsiye edebilir misiniz lütfen?
güncelleme:
Sadece @Alko ve onun iyi çalışıyor tarafından sağlanan yaklaşım denedik ama içeriğin türü kullanıyorum ile ilgili bir sorun vardır.
img etiketi,
<html><body><p><img src="/public_media/cache/66/ed/66edd1c01e3027ba18bef9244ca8e8b4.jpg?id=31"/>jshjksh skjhs jksh skjhsj ksh jkshs kjhs kjsh sjkhs khs ksh skh skh skjh skjh skjh ksjh ksh skhs kjsh skjh skhs khs kjsh skjh skjhs kshk sjh skjhs kjsh skjh skjh ksj ksjh jsk hskjh s</p><p>jshjksh skjhs jksh skjhsj ksh jkshs kjhs kjsh sjkhs khs ksh skh skh skjh
skjh skjh ksjh ksh skhs kjsh skjh skhs khs kjsh skjh skjhs kshk sjh
skjhs kjsh skjh skjh ksj ksjh jsk hskjh s</p></body></html>
i verilen çözüm çalıştırdığınızda oluyor whats aşağıda örnek olarak p etiketlerinde içinde yer almaktadır, bir etiket paragrafın biten sonra ekleniyor kapanış.
imgs = tree.xpath('.//img')
thm = "new-value"
for img in imgs:
img.set('src', thm)
a = etree.Element('a', href="#")
img.addprevious(a)
a.insert(0, img)
Ayrıca
>>> etree.tostring(tree)
'<html><body><a href="#"><img src="new-value"/></a></body></html>'
, lxml.html.fragment_fromstring
yararlı olabilir sonuçlanacaktır O ancak örneğinde olduğu gibi, daha çeşitli örnek sağlamak zorunda:
harika Şimdi 'LXML' kullanmaya başladığınıza. Http://stackoverflow.com/questions/20595735/python-regular-expression-find-and adresinde yer alan "src" değerini değiştirmek için sorununuzu çözdüğünüzden bu fikri/bilgiyi nereden aldığınıza dair cevabı kabul edebilir misiniz? -replace-html-tag-ile-özgü-nitelik-valu/20629768 # 20629768 I just did – Jon
, teşekkür jon :) .. girişinizi hızlı cevap için –