Scrapy Splash возвращает пустой список - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь очистить изображения и информацию о некоторых продуктах одежды с помощью Scrapy и Splash.Я хотел бы получить изображение только с продуктом (поэтому без модели). Например, это изображение из https://www2.hm.com/nl_nl/productpage.0220094001.html

Однако, если я попытаюсь получить src в оболочке Scrapy с помощью

response.xpath ('// figure [содержит(@class, "second")] // img // @ src '). extract ()

возвращается пустой список.

Кто-нибудь знает, как я могу получить источник этих вторичных изображений?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Если вы используете Splash для рендеринга страницы (как вы упомянули), ваш xpath должен работать правильно.Вы можете проверить это в scrapy shell следующим образом:

scrapy shell 'http://localhost:8050/render.html?url=https://www2.hm.com/nl_nl/productpage.0220094001.html&timeout=100&wait=0.5'

Ваш xpath выдаст список из 5 изображений:

response.xpath('//figure[contains(@class, "secondary")]//img//@src').extract()
['//lp2.hm.com/hmgoepprod?set=source[/04/2f/042fded3bfa88dda5680a6470f12f180bca4739e.jpg],origin[dam],category[ladies_dresses_maxidresses],type[LOOKBOOK],res[m],res[s],hmver[1]&call=url[file:/product/main]', 
'//lp2.hm.com/hmgoepprod?set=source[/8b/03/8b03a5491cc1fdfd27c7a308ad8fab2e1d408754.jpg],origin[dam],category[ladies_dresses_maxidresses],type[LOOKBOOK],res[m],res[s],hmver[1]&call=url[file:/product/main]', 
'//lp2.hm.com/hmgoepprod?set=source[/11/28/1128425ddada72796f5f4ad3b46d5836957f9522.jpg],origin[dam],category[ladies_dresses_maxidresses],type[LOOKBOOK],res[m],res[s],hmver[1]&call=url[file:/product/main]', 
'//lp2.hm.com/hmgoepprod?set=source[/79/63/796367ae5cfea46bf6b8eb2e1afe2fb5e54e86f4.jpg],origin[dam],category[ladies_dresses_maxidresses],type[DESCRIPTIVESTILLLIFE],res[s],hmver[1]&call=url[file:/product/main]', 
'//lp2.hm.com/hmprod?set=source[/model/2017/E00 0220094 001 08 3075.jpg],width[843],height[985],x[353],y[123],type[DETAIL],res[s]&hmver=0&call=url[file:/product/main]']
0 голосов
/ 02 февраля 2019

Проверьте JSON, который находится в response.xpath('//script[contains(text(), "productArticleDetails =")]/text()').Содержит все данные о товаре на странице, с изображениями.

...