разделить записи из источника в фрейме данных и поместить их все в одну запись - PullRequest
0 голосов
/ 29 января 2020

довольно сложный вопрос сегодня. По крайней мере для меня. Я хочу разделить записи в «результате», чтобы они попали в строку, но в одну и ту же запись DF. Кто-нибудь может помочь? Спасибо!

вот мои html

html ='''<div data-itf-inject="BeneficialNames"><div><ul class="bullet_list" data-six-show-max="2"><li>Mr. Fox</li><li>Mr. Gander</li><li style="display: none;">Mr. Daepp</li><li style="display: none;">Power&amp;Brothers Memory Fund III GP Ltd</li></ul><a data-six-showmore="true" href="#" style="display: inline-block;"><i class="fa fa-chevron-circle-down" title="Mehr anzeigen"></i> Mehr anzeigen</a></div></div>'''

Я помещаю его в BS:

h = BeautifulSoup(html, 'html.parser')

, затем я получаю текст.

BN = h.find('div', {'data-itf-inject': "BeneficialNames"}).text

Что возвращает довольно грязный результат.

Теперь я хотел бы поместить это в один элемент DF-Entry, очень похожий на мультииндекс, но в один DF.

Остальная часть DF уже существует, с добавлением это выглядит так:

ISSUER    SHARE    BN
'Company' '95'     'Mr. FoxMr. GanderMr. DaeppPower&Brothers Memory Fund III GP Ltd'

Но я хочу, чтобы это выглядело так:

ISSUER    SHARE    BN
'Company' '95'     'Mr. Fox'
                   'Mr. Gander'
                   'Mr. Daepp'
                   'Power&Brothers Memory Fund III GP Ltd'

Что мне делать? Спасибо!

1 Ответ

0 голосов
/ 29 января 2020

А как насчет этого решения?

from simplified_scrapy.simplified_doc import SimplifiedDoc
html ='''
<div data-itf-inject="BeneficialNames">
  <div>
    <ul class="bullet_list" data-six-show-max="2">
      <li>Mr. Fox</li>
      <li>Mr. Gander</li>
      <li style="display: none;">Mr. Daepp</li>
      <li style="display: none;">Power&amp;Brothers Memory Fund III GP Ltd</li>
    </ul><a data-six-showmore="true" href="#" style="display: inline-block;"><i class="fa fa-chevron-circle-down"
        title="Mehr anzeigen"></i> Mehr anzeigen</a>
  </div>
</div>
'''

doc = SimplifiedDoc(html)
div = doc.select('div@data-itf-inject=BeneficialNames')
lis = div.ul.lis
print ([li.text for li in lis])

Результат:

['Mr. Fox', 'Mr. Gander', 'Mr. Daepp', 'Power&amp;Brothers Memory Fund III GP Ltd']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...