在刮擦的外壳上得到空的方括号

2024-09-28 22:38:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了这个xpath的空方括号response.xpath( "//div[@class='c16H9d']").extract()

这里是urlhttps://www.daraz.com.bd/audio/?spm=a2a0e.home.cate_2.2.49c74591NNpWDU

我的xpath没有错,那么为什么我会得到这个空的方括号呢

>>>scrapy shell "https://www.daraz.com.bd/audio/?spm=a2a0e.home.cate_2.2.49c74591NNpWDU"
>>>response.xpath( "//div[@class='c16H9d']").extract()
>>>[]

Tags: divcomhomeresponsewwwextractaudioxpath
1条回答
网友
1楼 · 发布于 2024-09-28 22:38:32

我看到你在使用ScrapyShell,是的,这个类确实作为第一项存在。但是,如果您查看完整的HTML,您将看到此标记

<script type="application/ld+json">

这似乎包含用于填充页面前端的JSON。因此,您可以这样做,然后导入json并使用json加载将其加载到python对象中

response.css('script::text').extract()[-1]

最后一个脚本元素文本包含页面产品列表的所有json

import json
data = json.loads(response.css('script::text').extract()[-1])
item_list = data['itemListElement']
for each in item_list:
    print(each['name'], each['price'])

相关问题 更多 >