JSON.parse报错
来源:3-5 使用组合设计模式优化代码

zora_Zhang
2020-02-17
import fs from “fs”;
import cheerio from “cheerio”;
import { Analyzer } from “./crowller”;
interface Course {
title: string;
count: number;
}
interface courseResult {
time: number;
data: Course[];
}
interface Content {
[propName: number]: Course[];
}
export default class DellAnalyzer implements Analyzer {
private getCourseInfo(html: string) {
const $ = cheerio.load(html);
const courseItem = $(".course-item");
const couseInfos: Course[] = [];
courseItem.map((index, ele) => {
const desc = $(ele).find(".course-desc");
const title = desc.eq(0).text();
const count = parseInt(
desc
.eq(1)
.text()
.split(":")[1]
);
couseInfos.push({ title: title, count: count });
});
return {
time: new Date().getTime(),
data: couseInfos
};
}
generateJsonContent(courseInfo: courseResult, filePath: string) {
let fileContent: Content = {};
if (fs.existsSync(filePath)) {
fileContent = JSON.parse(fs.readFileSync(filePath, “utf-8”));
}
fileContent[courseInfo.time] = courseInfo.data;
return fileContent;
}
public analyze(html: string, filePath: string) {
const courseInfo = this.getCourseInfo(html);
const fileContent = this.generateJsonContent(courseInfo, filePath);
return JSON.stringify(fileContent);
}
}
3回答
-
百分之一昵称已占用
2020-02-18
有可能是url错了,没有爬到html,你看看secretkey和GitHub里面的一样吗?
222020-07-22 -
weixin_慕田峪131215
2020-10-07
。。。
00 -
Dell
2020-02-22
你看下你的json文件,存的内容是什么,是不是不是标准json格式
00
相似问题