鱼C论坛

 找回密码
 立即注册
查看: 2199|回复: 7

关于openpyxl模块文件保存问题...

[复制链接]
发表于 2020-6-28 15:00:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 叶小贤 于 2020-6-28 17:31 编辑

这里我创建成功
file_name =  "新笔趣阁更新数据("+datetime.datetime.now().strftime('%Y-%m-%d')+").xlsx"
self.wb.save('F:\Spider_Demo\Spider_Test1\\'+file_name)

但是到了保存数据的时候出了问题,数据完全没保存,请问是哪里写错了?
self.wb.save('F:\Spider_Demo\Spider_Test1\\'+self.file_name)



发现问题是因为:
self.wb.save('F:\Spider_Demo\Spider_Test1\xxx.xlsx')  #这样写是没问题的

file_name =  "xxx.xlsx"
self.wb.save('F:\Spider_Demo\Spider_Test1'+os.sep+file_name)  #用路径拼对象的方法创建以后数据就没办法保存

代码如下:
import scrapy
from Spider_Test1.Spider_Test.items import SpiderTest1Item
import json
from openpyxl import Workbook,load_workbook  #新建,读取
import datetime

class New_BQG(scrapy.Spider):

    name = 'NewBQG'
    allowed_domains = ['xbiquge.la']
    start_urls = [
    'http://www.xbiquge.la/fenlei/1_1.html'  #玄幻更新列表
    #'http://www.xbiquge.la/fenlei/2_1.html',  #修真更新列表
    #'http://www.xbiquge.la/fenlei/3_1.html',  #都市更新列表
    #'http://www.xbiquge.la/fenlei/4_1.html',  #穿越更新列表
    #'http://www.xbiquge.la/fenlei/5_1.html',  #网游更新列表
    #'http://www.xbiquge.la/fenlei/6_1.html',  #科幻更新列表
    ]

    def __init__(self):
        #self.wb = load_workbook('F:\Spider_Demo\Spider_Test1\新笔趣阁_修真更新.xlsx')
        #self.sheet = self.wb['Sheet']

        self.wb = Workbook()  # 创建一个工作表
        self.sheet = self.wb.active  # 操作sheet页
        self.sheet.title = "玄幻小说更新列表"
        self.sheet['A1'] = '书名'
        self.sheet['B1'] = '最新章节'
        self.sheet['C1'] = '更新日期'
        self.sheet['D1'] = '作者'
        self.sheet['E1'] = '更新章节链接'

        s2 = self.wb.create_sheet('修真小说更新列表')
        s2['A1'] = '书名'
        s2['B1'] = '最新章节'
        s2['C1'] = '更新日期'
        s2['D1'] = '作者'
        s2['E1'] = '更新章节链接'

        s3 = self.wb.create_sheet('都市小说更新列表')
        s3['A1'] = '书名'
        s3['B1'] = '最新章节'
        s3['C1'] = '更新日期'
        s3['D1'] = '作者'
        s3['E1'] = '更新章节链接'

        s4 = self.wb.create_sheet('穿越小说更新列表')
        s4['A1'] = '书名'
        s4['B1'] = '最新章节'
        s4['C1'] = '更新日期'
        s4['D1'] = '作者'
        s4['E1'] = '更新章节链接'

        s5 = self.wb.create_sheet('网游小说更新列表')
        s5['A1'] = '书名'
        s5['B1'] = '最新章节'
        s5['C1'] = '更新日期'
        s5['D1'] = '作者'
        s5['E1'] = '更新章节链接'

        s6 = self.wb.create_sheet('科幻小说更新列表')
        s6['A1'] = '书名'
        s6['B1'] = '最新章节'
        s6['C1'] = '更新日期'
        s6['D1'] = '作者'
        s6['E1'] = '更新章节链接'

        file_name =  "新笔趣阁更新数据("+datetime.datetime.now().strftime('%Y-%m-%d')+").xlsx"
        self.wb.save('F:\Spider_Demo\Spider_Test1\\'+file_name)



  
    def parse(self, response):
        res1  = response.css(".l ul li span *::text").extract()
        url = response.xpath("//div[@class='l']/ul/li/span[@class='s3']/a/@href").extract()


        ru = 2
        for u in url:
            url_u = 'http://www.xbiquge.la/'+u
            self.sheet.cell(row=ru, column=5, value=url_u)
            self.wb.save('F:\Spider_Demo\Spider_Test1\\'+self.file_name)
            if ru <= len(url):
                ru += 1

        for i in res1:
            if i == '《' or i == '》':
                res1.remove(i)
        r = 2
        for each in range(0, len(res1), 4):
            c = 1
            for v in res1[each:each + 4]:
                self.sheet.cell(row=r, column=c, value=v)
                self.wb.save('F:\Spider_Demo\Spider_Test1\\'+self.file_name)
                if c <= 4:
                    c += 1
            if r <= 31:
                r += 1
        self.wb.close()





想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-28 15:09:30 | 显示全部楼层
咋看着好像没问题0.0
有报错么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-28 15:12:33 | 显示全部楼层
yhhpf 发表于 2020-6-28 15:09
咋看着好像没问题0.0
有报错么?

没报错 生成了 xlsx 但是里面没数据。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-28 15:16:02 | 显示全部楼层
yhhpf 发表于 2020-6-28 15:09
咋看着好像没问题0.0
有报错么?

self.wb.save('F:\Spider_Demo\Spider_Test1\新笔趣阁更新数据.xlsx')  我改成这样就没问题 。。。为什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 16:16:17 | 显示全部楼层
叶小贤 发表于 2020-6-28 15:16
self.wb.save('F:\Spider_Demo\Spider_Test1\新笔趣阁更新数据.xlsx')  我改成这样就没问题 。。。为什么

前面__init__下的没问题,后面
def parse(self, response)
你哪里来的response呢??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-28 17:28:39 | 显示全部楼层
yhhpf 发表于 2020-6-28 16:16
前面__init__下的没问题,后面
def parse(self, response)
你哪里来的response呢??

scrapy框架 ,接收的 start_urls = [
    'http://www.xbiquge.la/fenlei/1_1.html'  #玄幻更新列表
    #'http://www.xbiquge.la/fenlei/2_1.html',  #修真更新列表
    #'http://www.xbiquge.la/fenlei/3_1.html',  #都市更新列表
    #'http://www.xbiquge.la/fenlei/4_1.html',  #穿越更新列表
    #'http://www.xbiquge.la/fenlei/5_1.html',  #网游更新列表
    #'http://www.xbiquge.la/fenlei/6_1.html',  #科幻更新列表
    ]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 17:43:52 | 显示全部楼层
叶小贤 发表于 2020-6-28 17:28
scrapy框架 ,接收的 start_urls = [
    'http://www.xbiquge.la/fenlei/1_1.html'  #玄幻更新列表
   ...

哪里传递过去了???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-29 10:44:48 | 显示全部楼层
yhhpf 发表于 2020-6-28 17:43
哪里传递过去了???

start_urls 这个对象是固定的 只要你写这个名字 就能传过去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 07:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表