Парсинг ссылок со страницы

Задача заключается в том, чтобы спарсить нужную информацию с карточки вакансии, затем из страницы с этой вакансией достать недостающую информацию
Получается достать эти данные, но не объединить их
Подскажите, пожалуйста, какими способами попробовать решить
Ниже код, до которого я додумался и встал

class TutorSpider(scrapy.Spider):
    name = 'tutorial'
    start_urls = [
        'https://hh.ru/search/vacancy?L_is_autosearch=false&area=3&clusters=true&enable_snippets=true&text=Python&page=0',
    ]

    def parse(self, response: HtmlResponse):
        """vacancy_href = response.xpath('//a[@class="bloko-link HH-LinkModifier"]/@href')
        for href in vacancy_href:
            yield response.follow(href, callback=self.parse_vacancy)"""

        # Переходит по страницам
        next_page = response.xpath('//a[@class="bloko-button HH-Pager-Controls-Next HH-Pager-Control"]')
        for page in next_page:
            yield response.follow(page, callback=self.parse)

        # Парсит карточку с вакансией
        for vacancy in response.xpath('//div[@class="vacancy-serp-item "]'):
            vacancy_href = vacancy.xpath('.//a[@class="bloko-link HH-LinkModifier"]/@href').get()
            data = {'title': vacancy.xpath('.//a[@class="bloko-link HH-LinkModifier"]/text()').get(),
                    'employer': vacancy.xpath('.//span[@class="bloko-section-header-3 bloko-section-header-3_lite"]/text()').get(),
                    'salary': vacancy.xpath('.//a[@class="bloko-link bloko-link_secondary"]/text()').get(),
                    # обращается к функции, чтобы спарсить вложенную страницу
                    'details': 1}
            yield data
            for i in response.xpath('//a[@class="bloko-link HH-LinkModifier"]/@href'):
                abc = response.follow(i, callback=self.parse_vacancy)
                yield abc

    def parse_vacancy(self, response: HtmlResponse):
        yield {'place': response.xpath('//span[@data-qa="vacancy-view-raw-address"]/text()').get(),
               'tags': response.xpath('//span[@data-qa="bloko-tag__text"]/text()').getall()}


if __name__ == '__main__':
    crawler_settings = Settings()
    # crawler_settings.setmodule(settings)
    process = CrawlerProcess(settings=crawler_settings)
    process.crawl(TutorSpider)
    process.start()


Ответы (0 шт):