我正在使用BeautifulSoup解析原始html,使用一组七个for循环写入七个列表。然后我将这些列表写入Pandas数据帧。为此,所有列表必须具有相同的长度。但由于没有找到某些条目的数据,七个列表中的一个总是缩短。我希望它在列表中添加一些内容(例如"缺少"),即使它什么也没找到,所以所有列表最终都有相同数量的条目。下面是一个简单的例子,只有七个循环中的两个:
#FIRST LOOP
retweets = data.find_all(class_='Something')
for rt in retweets:
rt2 = rt.get_text()
firstlist.append(rt2[0])
#SECOND LOOP
replies = data.find_all(class_='Something_else')
for rp in replies:
rp2 = rp.get_text()
secondlist.append(rp2[0])
第一个列表通常会缩短,所以我尝试了下面的代码,但列表长度仍然相同。它似乎没有丢失'什么时候失踪。
#FIRST LOOP
retweets = data.find_all(class_='Something')
for rt in retweets:
rt2 = rt.get_text()
if rt2 is not None:
firstlist.append(rt2)
else:
firstlist.append('missing')
答案 0 :(得分:2)
如果没有看到您的原始HTML,我认为您的文件中的条目完全丢失。在这种情况下,find_all
返回的列表将只与数据中存在的条目数一样长。您可以做的是检查每个列表的长度,然后填写第一个列表,如果它更短,则填充必需数量的missing
值。
另一种可能性是该列表不包含"无"但是一个空字符串,你需要检查它。