Я новичок в Scrapy, и я уже создал паука, который сначала извлекает список URL-адресов в start_url, перемещается по каждому из этих URL-адресов и просматривает содержимое.
Однако мне нужно изменить логикумой новый паук немного.Паук должен извлечь список URL-адресов в start_url, должен посетить каждый из этих URL-адресов и отсюда должен извлечь и посетить другой URL-адрес, прежде чем начать очистку содержимого:
import scrapy
class KickerbotSpiderStats(scrapy.Spider):
name = 'matches-stats2'
allowed_domains = ['www.kicker.de']
start_urls = ['http://www.kicker.de/news/fussball/wm/spiele/weltmeisterschaft/2014/-1/0/spieltag.html']
# Step 1 // Go to Site with all matches and extract URL of each of them
def parse(self, response):
for match in response.xpath('//*[contains(concat( " ", @class, " " ), concat( " ", "aligncenter", " " ))]//a/@href').extract():
yield scrapy.Request("http://www.kicker.de" + match, callback=self.parse_matchpage)
# Step 2 // From each match URL, get URL for match stats
def parse_matchpage(self, response):
for statsPage in response.xpath('//*[contains(concat( " ", @class, " " ), concat( " ", "nav4tab-sel", " " ))]//a/@href').extract():
yield scrapy.Request("http://www.kicker.de" + statsPage, callback=self.parse_statspage)
# Step 3 // Parse Stats from match
def parse_statspage(self, response):
yield {
'matchId' : (response.url).split("/")[-2],
'local' : response.xpath('//*[(@id = "SpielpaarungLiveTitleRow")]//a/text()').extract_first().strip()
}
Я добавил этот новый шагкак в моем рабочем пауке, но я не получаю никаких данных обратно.Паук ползет по-прежнему (ответ 200), но только для первого шага, и не перемещается по странице статистики.Что я делаю неправильно?