你好,我有这个html脚本:
<div class="sc-grid-col-12">
<div class="cldt-categorized-data cldt-data-section sc-pull-right">
<dl>
<dt>Nr. of Doors</dt>
<dd>5</dd>
<dt>Nr.of seat</dt>
<dd>5</dd>
</dl>
</div>
我想基于dt值Nr获得dd值(5)。的门。
这是我正在使用的代码(这是错误的):
start_urls = ["https://www.autoscout24.com/offers/peugeot-107-active-1hand-led-scheckheftgepflegt-tuev-au-neu-gasoline-silver-2c985ebc-5a39-4d12-bd50-605f7e9b4b58?cldtidx=13"]
def parse(self, response):
for quote in response.css('div.sc-grid-col-12'):
yield {
'portes': quote.xpath("//div[@class='cldt-categorized-data cldt-data-section sc-pull-right']//dl[dt='Nr. of Doors']//following-sibling::dd").extract(),
}
在我得到的输出下面:
{'portes': ['<dd>\n<a href="/lst/peugeot">Peugeot</a>\n</dd>', '<dd>\n<a href="/lst/peugeot/107">107</a>\n</dd>', '<dd>\nSilver\n</dd>', '<dd>\nMetallic\n</dd>', '<dd>\nCloth, Grey\n</dd>', '<dd>\nCompact\n</dd>', '<dd>\n3\n</dd>', '<dd>\n4\n</dd>', '<dd>\n3003/ACR\n</dd>']}
这个结果重复很多时间了!
答案 0 :(得分:0)
def parse(self, response):
for quote in response.css('div.sc-grid-col-12'):
yield {
'portes' = unidecode.unidecode(
re.sub(r'\s+',' ',quote.css("div.cldt-categorized-data.cldt-data-section.sc-pull-right dl[dt='Nr. of Doors'] + dd::text").extract_first()))
}