После объявления переменной в функции синтаксического анализа как «self.Title» и выдачи данных через другую функцию, она возвращает данные только одного URL-адреса по всем остальным. Что может быть не так.Вот фрагмент кода.
import scrapy
from scrapy.http import Request
class TestSpider(scrapy.Spider):
name = 'Test'
allowed_domains = ['example.com']
start_urls = ['https://example.com/search?q=com.foo', 'https://example.com/search?q=bar', 'https://example.com/search?q=data']
def parse(self, response):
self.Title = response.xpath('//*[@class="search-title"]/a/text()')[0].extract()
Ini_Url = response.xpath('//*[@class="search-title"]/a/@href')[0].extract()
Ab_url = "https://example.com" + Ini_Url + "/download?from=details"
yield Request(Ab_url, callback=self.parse_download)
def parse_download(self, response):
Download_URL = response.xpath('//*[@class="fdownload-box"]/p[2]/a/@href')[0].extract()
yield{"Download_URL": Download_URL, "Title": self.Title}
И вывод будет выглядеть так, как будто Download_URL различны для всех 3 очищенных URL-адресов, но заголовок, хотя разные, одинаковы для всех 3 запросов.