Вы не можете создать экземпляр переменной внутри словаря, который вы приводите, это не имеет смысла.
И обязательно поймите разницу между extract () и extract_first (), у меня такое ощущение, что extract_first - этометод, чтобы использовать здесь.См. документацию .
Что это за переменная элемента?Должно ли быть ad_links, верно?
Попробуйте это:
def parse(self, response):
for ad_links in response.xpath('//div[@class="view"][1]//a'):
relative_url = ad_links.xpath('@href').extract_first()
yield {
'title': ad_links.xpath('text()').extract_first(),
'link': response.urljoin(relative_url),
}