Прокрутите все записи, пока не дойдете до файла, и введите их в sqlite. - PullRequest
0 голосов
/ 14 января 2019

Не уверен, как поступить. Не уверен, как загрузить данные в таблицу sqlite.

https://pastebin.com/wxmaNACf

#create sqllite engine
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)

#load results to soup
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.content, 'html.parser')

#iterate through.  How do I load the data parsed into the data table.
for td_tag in soup.find_all('td'):
    print(td_tag.text, td_tag.next_sibling)
    context = (td_tag.text)

Нужно иметь таблицу sqlite с 5 столбцами. В первом столбце указано название компании, во втором столбце указаны даты по регионам без разделителя, т. Е. Северная Америка апрель 2019 г. Европа май 2019 г. Азия октябрь 2019 г. Третий столбец - это комментарии. Четвертый столбец содержит текст, который связан с iPhone 6S. В последнем столбце есть комментарии.

1 Ответ

0 голосов
/ 14 января 2019

Только будучи ограниченным тем, что вы предоставили, я могу принять только общее решение.

Дано:

html = '''
<tr>
       <td style="min-width: 5px; width: 150px; text-align: left;">
          <strong>
          Apple
          </strong>
       </td>
       <td style="min-width: 5px; width: 290px;">
          <div align="center" style="text-align: left;">
             April 1, 2020
          </div>
       </td>
       <td style="min-width: 5px; width: 48px; text-align: center;">
          <div align="center"></div>
       </td>
       <td style="min-width: 5px; width: 133px; text-align: center;">
          <div align="center"></div>
       </td>
       <td style="min-width: 5px; width: 437px;">
          Blah1, blah2
       </td>
    </tr>'''

Тогда у вас будет что-то похожее на это:

import pandas as pd
import bs4
from sqlalchemy import create_engine


engine = create_engine('sqlite:///:memory:', echo=True)

soup = bs4.BeautifulSoup(html, 'html.parser')

df = pd.DataFrame()
rows = soup.find_all('tr')
for row in rows:
    td = row.find_all('td')
    data_list = [ data.text.strip() for data in td ]
    temp_df = pd.DataFrame([data_list])

    df = df.append(temp_df)



df.reset_index(drop=True)

df.to_sql('new_table', con=engine)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...