我正在解析HTML页面中的数据。它处于一个正确的旧混乱中,因此我必须通过课程和跨越以获取我的数据。
我想将数据推送到数据框中。
我有代码工作,但是,我不知道在创建数据帧之前知道行数。为了测试我的代码,我将行设置为2000.
我不想两次遍历HTML - 是否有更好的方法来构建我的数据框?
soup = BeautifulSoup(source_code, "lxml")
new_table = pd.DataFrame(columns = range(0,3), index = range(0,2000)) # I don't know the number of rows
row_marker = 0
column_marker = 0
#Column 0
for header in soup.find_all("div", attrs={'class':'innerListing'}):
title = header.find("h2")
#print (title.text.strip())
new_table.iat[row_marker,column_marker] = title.text.strip()
row_marker +=1
column_marker = 1
row_marker = 0
#Columns 1&2
for layout in soup.find_all("div", attrs={'class':'layout'}):
for info in layout.find_all("span", attrs={'class':'info',"id":True}):
if "Stock" in info["id"]:
new_table.iat[row_marker,column_marker] = info.text.strip()
column_marker += 1
row_marker +=1
column_marker =1
print(new_table)
答案 0 :(得分:0)
我最终循环遍历HTML以计算所需的总行数。