Ваш XPath ничего не выбирает. Должно быть td[12]
вместо td[13]
.
substring-after(//tr/td[13]/a/@href, "/match-detail/?id=")
Лучше использовать относительный:
//table[@class="result"]//a[contains(@href,"match-detail")]/@href
Но проблема не в этом. В XPath 1.0 функции substring
будут выводить только результат функции, примененной к первому узлу, когда XPath возвращает несколько узлов.
Используйте Python
для создания списка. Возьмите значения, затем замените бесполезные части на re.sub
. Добавьте эти строки в свой код, чтобы сгенерировать список идентификаторов:
import re
data = response.xpath('//table[@class="result"]//a[contains(@href,"match-detail")]/@href').extract()
ids=[re.sub('^.+=','',el) for el in data]
Вывод для этой страницы : 262 элемента.
['789669', '779307', '786865', '789668', '786866',..., '1892793', '1892795', '1892802', '1892794', '1892955']