Допустим, у меня html-страница примерно такая:
...
<a class="hehe"><span>joke23</span></a>
<a class="hrtojoke" href="link/to/joke23"></a>
<a class="hehe"><span>joke24</span></a>
<a class="hehe"><span>joke25</span></a>
<a class="hrtojoke" href="link/to/joke25"></a>
...
Как видите, у меня нет ссылки на joke24
;)
Я хочу, чтобы на каждую шутку назначалась его ссылка. Если ссылка не существует, я хочу назначить ее как None
.
Мой код :
...
def parse(self, response):
for joke, link in response.css(itertools.zip_longest(response.css('a.hehe'), response.css('a.hrtojoke')):
yield {
'name_joke': joke.xpath('span/text()').extract_first(),
'link_joke': link.css('::attr(href)').extract_first(),
}
...
Как вы можете догадаться, этот код работает, но не правильно
Токовый выход :
...
{'name_joke': 'joke23', 'link_joke': 'link/to/joke23'}
{'name_joke': 'joke25', 'link_joke': 'link/to/joke25'}
error..
...
Желаемый выход :
{'name_joke': 'joke23', 'link_joke': 'link/to/joke23'}
{'name_joke': 'joke24', 'link_joke': None}
{'name_joke': 'joke25', 'link_joke': 'link/to/joke25'}
Как мне достичь своей цели?