Python爬虫问题:提取表格第二列并去除空白行
解决比特币区块链表格第二列提取时的空白行问题
嘿,作为Python爬虫新手遇到这种小问题很正常,我来帮你搞定!
问题原因分析
你遇到的空白行问题,本质是表格里部分行的第二列单元格本身是空的,或者包含换行、空格这类空白字符——当你直接打印cell.text时,这些空白内容就会被输出成空行。而第一列每个单元格都有实际内容,所以改索引到第一列时就没这个问题。
解决方案:过滤空白内容
我们只需要对提取到的单元格文本做两步处理:
- 用
strip()去掉文本前后的空白字符(包括换行、空格、制表符等) - 只输出非空的处理后文本
修改后的完整代码
import requests from bs4 import BeautifulSoup url = "https://blockchain.info/block-height/521578" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") # 定位目标表格 stat_table = soup.find_all('table', class_='table table-striped')[0] for row in stat_table.find_all("tr"): # 获取第二列单元格(索引1,因为列表从0开始) cells = row.find_all("td") if len(cells) >= 2: # 确保该行有至少两列,避免索引越界 cell_text = cells[1].text.strip() if cell_text: # 只输出非空内容 print(cell_text)
代码改动说明
- 增加了
len(cells) >= 2的判断:防止某些行只有1列(加了这步代码会更健壮) - 用
strip()清理文本:去掉多余的空白字符,避免无效换行 - 增加
if cell_text:判断:只有当清理后的文本不为空时才打印,彻底消除空白行
这样处理后,输出就没有空白行,直接就能保存成CSV文件啦!
内容的提问来源于stack exchange,提问作者ivanchoperez
相关产品推荐
相关产品推荐

