我在按类别删除其脚本时遇到了问题:
from bs4 import BeautifulSoup
str='<div class="akj-description-header" style="font-size:19px;">Hevesett <span style="color: #020202;font-weight: bold;">+50mm</span> utviklet av <span style="color: #020202;font-weight: bold;">Trailmaster</span>. <span class="akj-description-price" style="color: #020202;font-weight: bold;">8999 NOK.</span> Særlig tilpasset <span style="color: #020202;font-weight: bold;">Jeep Wrangler TJ 96-06</span>.<br/><br/></div><p></p><p style="font-size:16px;">Trailmaster er Europas ledende produsent av hevesett for terrengbiler. Mens andre produkter er designet for å møte kravene i det amerikanske eller det australske marked, er Trailmasters støtdempere og systemer for hevesett utviklet for å møte kravene i det europeisk markedet. Her er sikkerhets- og kvalitetskravene er høyere. I tillegg er produktene produsert i Europa: Alle delene kommer fra samme sted, passer til sammen og utgjør et helhetlig system.</p><p class="clearfix"><span style="color: #000000; font-size: large;"><strong> </strong></span></p><p class="clearfix"><span style="color: #000000; font-size: large;"></span></p><p> </p><p><span style="font-size: medium;">-The kit included all necessary parts for installation.</span></p><p><span style="font-size: medium;"> </span></p><p align="left"><span style="font-size: large;"><strong>Hevesett inkluderer:</strong></span></p><p><span style="font-size: medium;"> Monteringssett</span></p><p><span style="font-size: medium;"> Installasjons instruksjon</span><br/><span style="font-size: medium;"></span><br/><span style="font-size: large;"><strong> </strong></span></p><p class="clearfix"><span style="color: #000000; font-size: large;"><strong> </strong></span></p>'
def description_filter(description):
soup = BeautifulSoup(description, "lxml")
for span in soup.select('.akj-description-price'):
print(span)
print(soup)
span.decompose()
unwrapElements(soup, "html")
unwrapElements(soup, "body")
return soup
def unwrapElements(soup, elementsToFind):
elements = soup.find_all(elementsToFind)
for element in elements:
element.unwrap()
description_filter(str)
print(str)
它能找到范围但不能从汤中取出... 我在做什么错了?
答案 0 :(得分:1)
它实际上消除了汤的跨度,但是您并没有更改str
值,而是打印旧值,因此您不认识它。如果您想在完成某些操作后更改str
,只需将description_filter(str)
更改为
str = description_filter(str)
print(str) // will print new str without span class akj-description-price