您的代码使用类选择器。你的 html 告诉
data-content-id
是属性。不熟悉 scrapy 来判断它是否有属性选择的东西,但你可以使用 XPath 代替
response.xpath('//li[@data-content-id]')
data-content-id
页面上某些其他类型的内容也可能有一些其他值,因此上面的 xpath 可能会获取不需要的部分。
以下 CSS 应该可以工作:
response.css('[itemprop="review"]').get()
或者如果你真的想包含 data-content-id 那么我相信我们应该使用:
response.css('[data-content-id*="Reviews-"]').get()
这将获取 data-content-id 属性包含 Reviews- 的所有元素。我们在这里使用通配符,因为评论后面的数字看起来像一个 ID,每个评论元素都会有所不同。
所需数据未在页面的html代码中呈现!!
它由单独的 Api 调用加载并由 javascript 呈现。
要查看原始 html 代码,您需要(在 Chrome 中)使用“查看源代码”选项
CTRL+U
- 不检查 -> 元素。
其他信息 - > 抓取动态内容 (docs)