将BeautifulSoup输出加载到pandas数据框中 - 行未知

时间:2017-08-27 11:34:30

标签: python pandas beautifulsoup

我正在解析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)

1 个答案:

答案 0 :(得分:0)

我最终循环遍历HTML以计算所需的总行数。