Заменить
yield {
'titel': element.xpath('//dt/a/text()[1]').extract_first(),
'category': element.xpath('//dt/a/text()[2]').extract_first()
}
на:
yield {
'titel': element.xpath('.//dt/a/text()[1]').extract_first(),
'category': element.xpath('.//dt/a/text()[2]').extract_first()
}
Обратите внимание на точки перед селектором xpath, они означают относительный путь.
UPD: просто маленький наконечниктакже проверьте ваше значение allowed_domains
.Это должно быть написано так: allowed_domains = ['search.siemens.com']
UPD2: также проблема в главном селекторе в цикле for
, лучше быть более точным и указывать на список бетонных блоков.
for element in response.xpath("//dl[@id='search-resultlist']/dt"):
yield {
'titel': element.xpath('.//a/text()[1]').get(),
'category': element.xpath('.//a/text()[2]').get()
}