簡體   English   中英

如何將表存儲在變量中,每行作為元素和分隔符,以便在Python中使用BeautifulSoup來區分列?

[英]How can I store a table in a variable with each row as an element and a delimiter to distinguish columns using BeautifulSoup in Python?

我想在一個名為store的變量中存儲一個html表。

html = ['<html><body><p align="center"><table><tr><td>row1col1</td><td>row1col2</td><td>row1col3</td></tr><tr><td>row2col1</td><td>row2col2</td><td>row2col3</td></tr></table></html>']
soup = BeautifulSoup(''.join(html))
table = soup.find('table')
rows = table.findAll('tr')

store = []
row = []
numcols = []

for tr in rows:
    cols = tr.findAll('td')
    for td in cols:
        try:
            text = ''.join(td.find(text=True))
        except Exception:
            text = ''
        text = text+"|"
        row.append(text)
    store = ''.join(row)
print store

輸出如下:

row1col1|row1col2|row1col3|row2col1|row2col2|row2col3|

我想將行分別存儲在“store”變量中,以便我在“store”的一個元素中的每一行都有一個| 分隔每列的符號。 現在,沒有辦法區分哪些項目在哪一行。 關於如何做到這一點的任何想法?

我猜你有這樣的事情:

html = '<html><body><p align="center"><table><tr><td>row1col1</td><td>row1col2</td><td>row1col3</td></tr><tr><td>row2col1</td><td>row2col2</td><td>row2col3</td></tr></table></html>'
soup = BeautifulSoup(html)
table = soup.find('table')
rows = table.findAll('tr')

store = []

for tr in rows:
  cols = tr.findAll('td')
  row = []
  for td in cols:
    try:
      row.append(''.join(td.find(text=True)))
    except Exception:
      row.append('')
  store.append('|'.join(row))

print '\n'.join(store)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM