如何使用XPath/CSS提取名称以冒号开头的属性值?
解决Scrapy提取带冒号的HTML属性问题
使用XPath选择器直接提取(最可靠)
CSS选择器对带冒号的属性解析易出现识别偏差,改用XPath可直接定位带特殊符号的属性:# 精准定位id为MainMenu的nav-categories元素 json_data = response.xpath('//nav-categories[@id="MainMenu"]/@:json-data').get() # 匹配所有nav-categories元素 json_data = response.xpath('//nav-categories/@:json-data').get()若坚持用CSS选择器,需明确元素范围后提取
避免全局调用属性提取,先锁定目标元素再指定属性:json_data = response.css('nav-categories#MainMenu::attr(":json-data")').get()
拿到属性值后,若内容为JSON格式,可直接用json.loads(json_data)解析为Python字典。
内容的提问来源于stack exchange,提问作者m_sasha
相关产品推荐
相关产品推荐

