У меня есть html-файл со следующей структурой:
<div class='past_financing section'><div class="section dsss17 startups-show-sections fpg76 past_financing _a _jm" data-id="32319" data-_tn="startups/show/sections/past_financing"><div data-id="32319" class=" dsss17 startups-show-sections fss49 startup_rounds _a _jm" data-_tn="startups/show/sections/startup_rounds"><ul class='startup_rounds with_rounds'><li class='first not_editing startup_round'>
<div data-id="56738" class=" dsr49 fpe53 _a _jm" data-_tn="startup_rounds/profile"><div class='show section'>
<div class='details inner_section'>
<div class='header'>
<div class='type'>
Series A
</div>
</div>
<div class='raised'>
$1,500,000
</div>
</div>
</div>
</div>
</li><li class='first not_editing startup_round'>
<div data-id="72884" class=" dsr49 fpe53 _a _jm" data-_tn="startup_rounds/profile"><div class='show section'>
<div class='g-sash green left'>
<div class='copy'>Exit</div>
</div>
<div class='details inner_section'>
<div class='header'>
<div class='type'>
Acquired
by Travora Media - New York, NY
</div>
<div class='date_display'>Apr 1, 2012</div>
</div>
<div class='raised unknown'>
Unknown
</div>
</div>
<div class='participant_list inner_section'>
<div class='participant g-lockup'>
<div class='photo'>
<a class="startup-link" title="Travora Media - New York, NY" data-type="Startup" data-id="242501" href="https://angel.co/travora-media-new-york-ny"><img class="angel_image" alt="Travora Media - New York, NY" src="https://angel.co/images/shared/nopic_startup.png" /></a>
</div>
<div class='text'>
<div class='name'>
<a class="startup-link" data-type="Startup" data-id="242501" href="https://angel.co/travora-media-new-york-ny">Travora Media - New York, NY</a>
</div>
<div class='tags'>
</div>
</div>
</div>
</div>
</div>
</div>
</li><li class='first not_editing startup_round'>
<div data-id="12714" class=" dsr49 fpe53 _a _jm" data-_tn="startup_rounds/profile"><div class='show section'>
<div class='details inner_section'>
<div class='header'>
<div class='type unknown'>
No Stage
</div>
<div class='date_display'>Dec 3, 2010</div>
</div>
<div class='raised'>
<a rel="nofollow" target="_blank" href="http://venturebeat.com/2010/12/03/nileguide-funding/">$3,500,000</a>
</div>
<a class="read_press" rel="nofollow" target="_blank" href="http://venturebeat.com/2010/12/03/nileguide-funding/">Read Press</a>
</div>
</div>
</div>
</li>
Я хочу извлечь информацию для каждого элемента li
в ul
.Я ищу данные раунда, даты и деньги, собранные во время этого раунда.
До сих пор я пришел со следующими выражениями xPath:
funding_round = '//div[@class="past_financing section"]/div/div/ul[@class="startup_rounds with_rounds"]/li/div/div/div/div/div[@class="type"]/text()'
funding_date = '//div[@class="past_financing section"]/div/div/ul[@class="startup_rounds with_rounds"]/li/div/div/div/div/div[@class="date_display"]/text()'
founders_url = response.xpath(founder_url_path).extract()
founder_name = response.xpath(founder_name).extract()
Хотя он отлично работает как вывод, яполучить два разделенных списка
['\nSeries A\n', '\nAcquired\nby Travora Media - New York, NY\n', '\nSeries B\n', ]
['Apr 1, 2012', 'Dec 3, 2010', 'Jun 5, 2008']
Конкатенация тоже не помогла.
funding_round = response.xpath(funding_round).extract() + response.xpath(funding_date).extract()
Проблема в том, что структура сайта несовместима, некоторые элементы li
не имеютинформация о дате или деньгах.Я бы лучше хотел получить кортеж объектов из одного запроса.
Окончательный список должен выглядеть следующим образом:
[('\nSeries A\n', ) ('\nAcquired\nby Travora Media - New York, NY\n','Apr 1, 2012'), (, 'Dec 3, 2010'), ('\nSeries B\n','Jun 5, 2008') ]
Возможно ли использовать scrapy?