我知道如何硬编码标题名称,但我需要从数组中生成它们。这可能吗?你知道吗
我的数据是动态的,所以我不能硬编码我的标题或列
结果标题包含字符串,如动物,矿物,植物
结果\u列包含Bear、Quartz、Brocolli等字符串
我的代码
#Imports
from bs4 import BeautifulSoup
import requests
import pandas as pd
#Specify URL & Assign to page object
url = 'http://www.example.com'
page = requests.get(url)
#Grab our page as text
page.text
soup = BeautifulSoup(page.text, 'html.parser') #Use the HTML Parser
#Find our information
boxinfo = soup.find("div", {"id": "box1"})
headings = boxinfo.find_all("td", {"class": "label"})
columns = boxinfo.find_all("td")
#Get the headings
results_headings = []
for result in headings:
result_NoHTML = result.getText()
results.append(result_NoHTML)
#Get the columns
results_columns = []
for result2 in columns:
result2_NoHTML = result2.getText()
results_columns.append(result2_NoHTML)
df = pd.DataFrame(results_headings, results_columns)
df.to_csv('index.csv', index=False, encoding='utf-8')
我正在从中删除的表结构
<div class="box1">
<table class="table1">
<tr><td class="label">Item1</td><td>Value1</td></tr>
<tr><td class="label">Item2</td><td>Value2</td></tr>
<tr><td class="label">Item3</td><td>Value3</td></tr>
<tr><td class="label">Item4</td><td>Value4</td></tr>
</table>
</div>
您可以从
results_headings
和results_columns
生成的dict创建数据帧您也可以使用read\uhtml函数来读取pandas并传入您的表id。你知道吗
文档很好地描述了这一点: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_html.html
所以你已经搜集了你的数据,最后得到了如下的数据帧。注意:列仍然未命名,但列名显示在第一行,与数据没有任何分隔:
您可以从第二行开始构造新的数据帧,并将第一行指定为列:
相关问题 更多 >
编程相关推荐