利用爬虫爬取数据到excel表的一张sheet表中时,如果是间歇性爬取则需要将此次爬取的数据顺序存储在上次数据之后,据我所知openpyxl好像并没有像数据库那样有直接存储的功能(也许是因为我菜……),于是采用了部分代码来实现类似功能。
思路其实非常简单,利用while循环对某一列(行)的数据进行遍历,当遍历到空值时返回此时cell的坐标:
当时很单纯地写下了以下代码做个小实验
i=1
while ws.cell(i,1).value!='': #ws为该sheet表名称
i+=1
print(i)
但运行之后立马听到了电脑的风扇声,内存占用一瞬间上升到了98%,这样的的代码量是远远不会如此消耗性能的,一定是while循环出现的问题导致程序一直在遍历excel表格,初步推断是空白单元格设置为''
过于草率,于是选取了一个空白单元格获取它的值print(ws.cell(i,1).value)
运行后输出结果为None
而并非想象中的''
,于是问题就解决了:
i=1
while ws.cell(i,1).value!=None: #ws为该sheet表名称
i+=1
print(i)