爬虫数据老不好,需要缓存来断点续爬实现
发布日期:2021-05-07 19:07:36 浏览次数:23 分类:原创文章

本文共 815 字,大约阅读时间需要 2 分钟。

    global localData    global isFirst    global allSize    filename="backUp.txt"    if localData <= 0 and isFirst:        try:            count = -1            for count, line in enumerate(open(filename, 'rU',encoding='utf-8')):                pass            count += 1            localData = int(linecache.getline(filename, count).split("----")[0])            isFirst = False        except:            localData=0    if localData>0:        # 数据已经抓过了        print("已经抓过的数据...%s"%(localData))        localData-=1        return  ""

在代码的开端加上这行控制 

每次抓好数据 保存起来

   with open("backUp.txt", "a+", encoding="utf-8") as f:        f.write(str(allSize)+"----"+str(data)+"\n")
可能你看起来比较乱 

我阐述一下大概的思想把 

就是没爬一条数据 给一个索引并写到本地

1----data 

2----data 

等下次再爬去的时候 读取最后一行的index

而且只读取一次 数量是几 就跳出几次循环 这样省去了加载 爬虫的速度会很快

因为鄙人现在还不能解决这个主机访问超时这样子的bug.....

上一篇:Python-循环遍历文件
下一篇:python计算文件的行数和读取指定行的内容

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月10日 16时02分41秒