不确定如何继续。不确定如何将数据加载到sqlite表中。
#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)
需要一个带5列的sqlite表。第一列是公司名称,第二列具有不带分隔符的地区日期,即北美,2019年4月,欧洲,2019年5月,亚洲,2019年10月。第三列是注释。第四列包含链接的文本,即iPhone 6S。最后一栏有评论。
答案 0 :(得分:0)
仅限于您提供的内容,我只能提出一般的解决方案。
给出:
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)