美文网首页
2020-11-28python爬虫断点记录功能

2020-11-28python爬虫断点记录功能

作者: 217760757146 | 来源:发表于2020-11-28 18:53 被阅读0次

    scrapy本身是有一个断点记录的功能的 会将队列保存到本地只需要在设置中开启就OK了

    scrapy crawl somespider -s JOBDIR=crawls/somespider-1
    

    详细请参考(https://blog.csdn.net/qq_37253540/article/details/99851457)

    功能:爬虫中断时记录断点位置 且下次开始从断点开始

    理论:假设有一个请求列表,每次请求记录一下列表的index到硬盘中,下次使用从硬盘中读取

    #这是一个写入硬盘(csv)的方法 可以自己写 也可以直接复制调用
    import csv
    def write_fugai(filename,alists):
        alis = ','.join(alists)
        with open(filename, 'w', encoding="utf-8",newline='') as f:
            f.write('%s\n'%(alis))
    #使用举例
    write_fugai("ceshi.csv",["5"])
    

    当我们调用这个方法 将执行的index写入csv,就完成了对断点的记录

    #读取断点的位置
    def readercsv(filename):
        with open(filename,mode='r',encoding='utf-8-sig',newline='') as f:
            #此处读取到的数据是将每行数据当做列表返回的
            rowlist= []
            for row in csv.reader(f):
                rowlist.append(row)
        return rowlist
    readercsv("ceshi.csv")
    

    当我们调用这个方法就完成了对断点index的提取 这样就可以记录断点并且断点重启了

    import csv
    #写入断点位置
    def write_fugai(filename,alists):
        alis = ','.join(alists)
        with open(filename, 'w', encoding="utf-8",newline='') as f:
            f.write('%s\n'%(alis))
    #读取断点的位置
    def readercsv(filename):
        with open(filename,mode='r',encoding='utf-8-sig',newline='') as f:
            #此处读取到的数据是将每行数据当做列表返回的
            rowlist= []
            for row in csv.reader(f):
                rowlist.append(row)
        return rowlist
    
    write_fugai("ceshi.csv",["5"])
    readercsv("ceshi.csv")
    

    这里是以csv为例 原理一样可以尝试写入别的文件类型及读取

    相关文章

      网友评论

          本文标题:2020-11-28python爬虫断点记录功能

          本文链接:https://www.haomeiwen.com/subject/wtdcwktx.html