首页 > 解决方案 > 在scrapy上找到合适的选择器css来爬取网页

问题描述

我正在尝试抓取此网页“ https://www.woolworths.com.au/shop/browse/drinks/cordias-juices-iced-teas/iced-teas ”以提取产品名称,但我找不到正确的选择器,即使是价格、h1 或标题!我试过了 :

response.css(".shelfProductTile-descriptionLink") #for the name product
response.css(".price-cents") # for the price
response.css(".tileList-title") # for the title

我该如何进行?

标签: pythoncssweb-scrapingscrapyweb-crawler

解决方案


内容是从 POST xhr 返回的 json 动态加载的,您可以在浏览器的网络选项卡中找到。

请求转到:

https://www.woolworths.com.au/apis/ui/browse/category

有效载荷:

{"categoryId":"1_9573995","pageNumber":1,"pageSize":24,"sortType":"TraderRelevance","url":"/shop/browse/drinks/cordials-juices-iced-teas/iced-teas","location":"/shop/browse/drinks/cordials-juices-iced-teas/iced-teas","formatObject":"{\"name\":\"Iced Teas\"}","isSpecial":False,"isBundle":False,"isMobile":False,"filters":"null"}

在scrapy使用中响应:

json.loads(response.body_as_unicode())

推荐阅读