无法通过XPath定位Budget租车网站元素的技术咨询
Budget租车网站车辆数据采集解决方案
问题核心原因
你当前使用的XPath //d1[@class="detailed-car-group__info"]存在拼写错误,正确的标签名是dl(定义列表标签)而非d1,这是定位失败的直接原因。
目标信息定位方案
针对载人量、行李容量、变速箱信息,可使用以下精准XPath表达式:
- 载人量:
//dl[@class="detailed-car-group__info"]//div[contains(text(),'Passengers')]/following-sibling::div - 行李容量:
//dl[@class="detailed-car-group__info"]//div[contains(text(),'Luggage')]/following-sibling::div - 变速箱信息:
//dl[@class="detailed-car-group__info"]//div[contains(text(),'Transmission')]/following-sibling::div
批量采集优化建议
若需批量获取所有车辆的对应数据,建议先定位车辆分组节点,再在节点内部提取信息,避免定位到无关元素:
//div[contains(@class,'detailed-car-group')]
以Python Scrapy为例的批量采集逻辑:
for car in response.xpath('//div[contains(@class,"detailed-car-group")]'): yield { 'model': car.xpath('.//h3[@class="detailed-car-group__make-model"]/text()').get().strip(), 'passengers': car.xpath('.//dl[@class="detailed-car-group__info"]//div[contains(text(),"Passengers")]/following-sibling::div/text()').get().strip(), 'luggage': car.xpath('.//dl[@class="detailed-car-group__info"]//div[contains(text(),"Luggage")]/following-sibling::div/text()').get().strip(), 'transmission': car.xpath('.//dl[@class="detailed-car-group__info"]//div[contains(text(),"Transmission")]/following-sibling::div/text()').get().strip() }
内容的提问来源于stack exchange,提问作者Kishen
相关产品推荐
相关产品推荐

