Как я могу очистить <li>элемент, который принадлежит определенному классу - PullRequest
1 голос
/ 03 апреля 2019

Я пытаюсь очистить веб-сайт Amazon. Это ссылка на странице продукта, на которую я ссылаюсь.

Я пытаюсь очистить url изображений, которые присутствуют внутри ul> li и далее вниз внутри тегов span, присутствующих в верхней левой части страницы.

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

Следующая команда работает нормально и дает мне все URL всех миниатюр

response.xpath('*//div[@id="altImages"]/ul/li/span[@class="a-list-item"]/span/span/span/span/img/@src').extract()

Проблема с вышеприведенной командой заключается в том, что я не могу различить, принадлежит ли изображение к изображению миниатюры видео или эскиза изображения.

Для этого я использовал следующую команду, чтобы получить эскизы, принадлежащие изображению:

response.xpath('*//div[@id="altImages"]/ul/li[contains(@class,"imageThumbnail")]/span[@class="a-list-item"]/span/span/span/span/img/@src').extract()

``````````
and

``````````
response.xpath('*//div[@id="altImages"]/ul/li[@class="a-spacing-small item imageThumbnail a-declarative"]/span[@class="a-list-item"]/span/span/span/span/img/@src').extract()

Класс = "a-spacing-small item imageThumbnail a-декларативный" должен давать мне только те элементы, которые имеют класс 'imageThumbnail'. но я получаю пустой список

В выводе я ожидаю только URL-адреса изображений, принадлежащих классу 'imageThumbnail', которые в нашем примере должны быть только 5 цифрами

Вот ссылка на вывод, который я получаю: https://imgur.com/a5wsZh1

1 Ответ

2 голосов
/ 03 апреля 2019

Я предлагаю вам использовать CSS селекторы здесь, в частности, потому что вы обрабатываете классы. Чтобы выбрать все миниатюры, не связанные с видео, вы можете использовать:

response.css('#altImages li.item:not(.videoBlockIngress) img::attr(src)').getall() 

Или, если хотите получить только видео превью:

response.css('#altImages .videoBlockIngress img::attr(src)').getall()

Подробнее о селекторах Parsel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...