我正在编写一个 beautifulsoup/python 代码来从 html 表中抓取数据。表格的问题是某些列可能有空白数据(单元格为空)。当我运行此代码时,它第一次遇到表格中的空白单元格时,它会因“类型错误”而停止,并且我只得到输出直到该代码行。
下面的代码在第一次出现空单元格时停止并出现类型错误。
for tr in rows:
cols = tr.findAll('td')
for td in cols:
text = ''.join(td.find(text=True))
print
上述代码的示例输出 -
A, 123, c, d, 6, 0, KK, G,
V, 21, b, e, 6, 5, kk, g,
M, 1, a, f, 7, 5, BB,
请注意,在上述输出的最后一行中,最后一个值 (BB) 之后没有数据。这是因为表格中有一个空白单元格,结果python在输出这么多后停止运行。
我尝试修改它,但现在它在某些已经有数据的单元格中一直输入空白。
更新代码:
for tr in rows:
cols = tr.findAll('td')
for td in cols:
if td.find(text=''):
text = ''.join('blank')
else:
text = ''.join(td.find(text=True))
print text + ", ",
print
上述代码的示例输出 -
blank, 123, c, d, 6, 0, blank, blank,
blank, 21, b, e, 6, 5, blank, blank,
blank, 1, a, f, 7, 5, blank,
注意 - 即使在上面遇到第三个单元格中的实际空白数据后它也会停止。
我究竟做错了什么?当单元格没有数据时,我基本上希望单元格输出为空白,否则输出应该是实际的单元格内容。