|
|
|
from typing import List
|
|
|
|
|
|
|
|
from service.IFileService import IFileService
|
|
|
|
from entity.BilibiliVideo import BilibiliVideo
|
|
|
|
from controller.SpyderController import SpyderController
|
|
|
|
import csv
|
|
|
|
|
|
|
|
class CsvService(IFileService):
|
|
|
|
def save(self, filePath, videoList: List[BilibiliVideo]):
|
|
|
|
f = open(filePath+".csv", "w", encoding="GB18030", newline="")
|
|
|
|
csv_writer = csv.writer(f)
|
|
|
|
csv_writer.writerow(
|
|
|
|
["topNo", "bvId", "title", "url", "uploadTime", "viewCount", "likeCount", "coinCount", "favoriteCount",
|
|
|
|
"bulletCount", "commentCount",
|
|
|
|
"creatorId", "creatorName", "creatorFanCount"])
|
|
|
|
for video in videoList:
|
|
|
|
csv_writer.writerow(
|
|
|
|
[video.topNo, video.bvId, video.title, video.url, video.uploadTimeText, video.viewCount, video.likeCount,
|
|
|
|
video.coinCount, video.favoriteCount, video.bulletCount, video.commentCount,
|
|
|
|
video.creatorId, video.creatorName, video.creatorFanCount])
|
|
|
|
f.close()
|
|
|
|
# raise NotImplementedError
|
|
|
|
|