我试图从下面的链接废弃T恤价格:https://www.adidas.com/us/search?q=tshirt
从链接中我看到了一行内容
<div class="gl-price-item gl-price-item--sale notranslate">$36</div>
我就是这么做的
>>> fetch('https://www.adidas.com/us/search?q=tshirt')
2022-09-25 23:50:11 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.adidas.com/us/search?q=tshirt> (referer: None)
>>> response.css('div.gl-price-item.gl-price-item--sale.notranslate')
[]
我希望从response.css('div.gl-price-item.gl-price-item--sale.notranslate')
中至少返回一个项,因为gl-price-item.gl-price-item--sale.notranslate
有一个$36
项,但是我得到了一个空数组。为什么会发生这种情况?
我做错了什么?
1条答案
按热度按时间9rnv2umw1#
因为数据是通过
API
动态加载的,所以你得到的是一个空数组。所以你不能抓取动态内容,因为scrapy不能呈现JS。但是你可以在scrapy的帮助下从API中拉取所有需要的数据。范例:
输出:
...等等