Разбор текста в столбцах - PullRequest
       2

Разбор текста в столбцах

0 голосов
/ 06 февраля 2020

Я написал код для разбора части моего html, см. Код ниже. Конечный результат я сохранил как html для примера в выпадающем списке (https://www.dropbox.com/s/kbnal2pefih2ru4/test.html?dl=0). Но мой вопрос заключается в том, как мне в дальнейшем редактировать мой код, чтобы я мог печатать сильные части (полужирный текст) в одном столбце, а в следующем столбце - обычный текст.

import textwrap
import os
from bs4 import BeautifulSoup

directory ='C:/Research syntheses - Meta analysis/SeekingAlpha/Tests/'
for filename in os.listdir(directory):
    if filename.endswith('.html'):
        fname = os.path.join(directory,filename)
        with open(fname, 'r') as f:
            soup = BeautifulSoup(f.read(),'html.parser')
            participants = soup.find('div',class_='content_part hid', id='article_qanda')
        print(filename, participants)

Так что мой конечный результат будет выглядеть примерно так это в формате CSV: Пример

enter image description here

1 Ответ

0 голосов
/ 07 февраля 2020

Мы можем использовать pandas фрейм данных, чтобы сделать его в том формате таблицы, который вы хотите. Можем ли мы предположить, что каждый другой р будет содержать сильное? Если это так, это должно работать:

strong = []
not_strong = []

all = soup.find_all('p')
for i in range(0,len(all),2):   # loop every other
    strong.append(all[i])
    strong.append(all[i+1])

d = {'column 1': strong, 'column 2': not_strong}

df = pd.DataFrame(d)

Затем он должен печатать в нужном формате. Если мы не можем сделать это предположение, нам нужно будет определить, содержит ли каждое p сильное, и добавить это и следующее p в соответствующий список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...