...Есть такой вот код:
class GameScrapy(scrapy.Spider):
name = 'game'
allowed_domains = ['store.steampowered.com']
start_urls = ['https://store.steampowered.com/search/?term=indi&ndl=1']
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url=get_url(url), callback=self.parse)
def parse(self, response):
for link in response.css('div.search_results a::attr(href)'):
game_url = link.get()
yield scrapy.Request(url=get_url(game_url), callback=self.parse_game)
def parse_game(self, response):
yield {
'name': 1
}
Я проверил
response.css('div.search_results a::attr(href)')
на то что он непустой и в нем 50 ссылок
Я запускаю scrapy crawl game -o game.csv, но в файле пусто, а должно быть 50 единиц в файле game.csv
НО, если написать так(удалил фунцкию parse_game, и пишу в файл только ссылки), то так все работает.
class GameScrapy(scrapy.Spider):
name = 'game'
allowed_domains = ['store.steampowered.com']
start_urls = ['https://store.steampowered.com/search/?term=indi&ndl=1']
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url=get_url(url), callback=self.parse)
def parse(self, response):
for link in response.css('div.search_results a::attr(href)'):
game_url = link.get()
yield {
'link': game_url
}