You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Scrapy CSS选择器从RSS Feed中提取media:thumbnail的URL

解决RSS中media标签属性的CSS选择器获取问题

你在解析RSS的XML结构时,能正常通过title.css('title ::text').get()这类代码获取普通标签内容,但无法获取<media:thumbnail>的url属性,核心原因是带命名空间前缀的标签无法被常规CSS选择器直接识别,可以通过以下两种方法解决:

方法1:使用CSS选择器的name()函数匹配标签

CSS选择器本身不支持XML命名空间前缀,因此可以通过*[name()="标签全名"]的方式匹配带命名空间的标签,再提取属性:

# 获取media:thumbnail的url属性
thumbnail_url = response.css('*[name()="media:thumbnail"]::attr(url)').get()

# 同理获取media:content的url属性
content_url = response.css('*[name()="media:content"]::attr(url)').get()

方法2:使用XPath(更适配XML命名空间)

XML命名空间更适合用XPath处理,只需先注册media对应的标准命名空间URI,再通过前缀选择标签:

# 注册media命名空间(多数RSS的media标签都使用这个URI)
response.selector.register_namespace('media', 'http://search.yahoo.com/mrss/')

# 通过XPath提取属性
thumbnail_url = response.xpath('//media:thumbnail/@url').get()
content_url = response.xpath('//media:content/@url').get()

内容的提问来源于stack exchange,提问作者Mah3sh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 20:59:57