Xpath scrapy filter отфильтрованный селектор - PullRequest
0 голосов
/ 30 августа 2018

Можно ли сделать что-то вроде (используя только xpath):

filtered = response.xpath('//input[@type="submit"]')
filtered.xpath('[contains(@name, "abc")]')

Приведенный выше код создает исключение:

ValueError: ошибка XPath: недопустимое выражение в [содержит (@ имя, "А")]

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете выбрать изначально правильные элементы:

filtered = response.xpath('//input[@type="submit"][contains(@name, "abc")]')

или фильтр, как показано ниже

filtered = response.xpath('//input[@type="submit"]')
# by exact @name value
new_filtered = [item for item in filtered if item.attrib['name'] == 'abc']
# by partial @name value
new_filtered = [item for item in filtered if 'abc' in item.attrib['name']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...