Как получить селектор xpath для динамически загружаемого класса - PullRequest
0 голосов
/ 02 марта 2020

Часть имени класса загружается динамически (ico-частично-облачно) .. Я пытаюсь получить эту часть только из источника html

<div data-ng-class="'icon-' + day.icon + '-' + theme" class="forecast-icon ico-partly-cloudy" xpath="1"></div>

, используя:

response.xpath('//html[1]/body[1]/div[1]/div[1]/div[3]/div[2]/div[1]/div[1]/@class=forcast-icon').extract()

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

Ответы [ 3 ]

1 голос
/ 02 марта 2020

Чтобы упростить использование только xpath, измените выражение xpath на:

//div[@data-ng-class][contains(@class,"forecast-icon")]/substring-after(@class,"forecast-icon ")
1 голос
/ 02 марта 2020

Это будет сделано:

response.xpath('//html[1]/body[1]/div[1]/div[1]/div[3]/div[2]/div[1]/div[1]/@class').extract_first().split('forecast-icon ')[1]
0 голосов
/ 02 марта 2020

что вы можете сделать с помощью css вот так

response.css('.forecast-icon.ico-partly-cloudy').get()

Теперь я не знаю, как вы получаете выбор

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