Я новичок в python и scrapy, посмотрел несколько уроков по udemy и youtube и теперь пробую свой первый собственный пример.Я знаю, как сделать цикл, если есть следующая кнопка.Но в моем случае его нет.
Вот мой код, работающий над одним из URL, но стартовый URL необходимо изменить позже:
class Heroes1JobSpider(scrapy.Spider):
name = 'heroes1_job'
# where to extract
allowed_domains = ['icy-veins.com']
start_urls = ['https://www.icy-veins.com/heroes/alarak-build-guide']
def parse(self, response):
#what to extract
hero_names = response.xpath('//span[@class="page_breadcrumbs_item"]/text()').extract()
hero_buildss = response.xpath('//h3[@class="toc_no_parsing"]/text()').extract()
hero_buildskillss = response.xpath('//span[@class="heroes_build_talent_tier_visual"]').extract()
for item in zip(hero_names, hero_buildss, hero_buildskillss):
new_item = Heroes1Item()
new_item['hero_name'] = item[0]
new_item['hero_builds'] = item[1]
new_item['hero_buildskills'] = item[2]
yield new_item
Но это только одинГерой, и я хочу около 90 из них.Каждый URL зависит от имени героя.Я могу получить список URL-адресов с помощью этой команды:
start_urls = ['https://www.icy-veins.com/heroes/assassin-hero-guides')
...
response.xpath('//div[@class="nav_content_block_entry_heroes_hero"]/a/@href').extract()
Но я не знаю, как сохранить этот список для того, чтобы функция синтаксического анализа могла зацикливаться на них.
спасибо взаранее!