Scrapy Xpath:从 img 节点中提取@title

Scrapy Xpath: Extracting @title from img node

我想从本页的 根据您的投票 部分的主要注释中提取 @titlehttps://www.fragrantica.com/perfume/Remy-Latour/Cigar-9351.html

我获取了 HTML,然后在 scrapy shell 上尝试了这行代码,但输出是 None:

response.xpath('//*[@id="userMainNotes"]/div/img/@title).extract_first()

我做错了什么?

如果您查看源代码 (Ctrl+U),您会发现:

<div title="96:241;171:117;33:103;34:103;41:70;128:63;4:59;182:59;170:58;75:56;191:48;21:39;77:39;14:28" id="userMainNotes">Loading...</div>

这意味着上面的 <div> 是由 Javascript 呈现的,这就是您的代码不起作用的原因。

这会起作用

response.xpath('//span[contains(@id, "note")]/img[@rel]/@title')

不要忘记将 USER AGENT 设置为您的 settings.py