Вы можете попробовать использовать обходной путь ниже:
'//*[starts-with(@id, "olnof_") and contains(@id, "_altlinesodd")]/tr[1]/TD[1]/A[1]'
ends-with(@id, "_altlinesodd")
подходит лучше в этом случае, но Scrapy не поддерживает синтаксис ends-with
, поэтому contains
используется вместо