Skip to content

Instantly share code, notes, and snippets.

@KaiserKatze
Created November 10, 2018 00:35
Show Gist options
  • Select an option

  • Save KaiserKatze/e96e4c9d2a1b3693252a355ac5f5a6df to your computer and use it in GitHub Desktop.

Select an option

Save KaiserKatze/e96e4c9d2a1b3693252a355ac5f5a6df to your computer and use it in GitHub Desktop.
Scrape data from bilibili.com
function extractTotalViewFromHtmlResponse(response) {
// TODO
}
// test mid=299999920
// test mid=6290510
export class User {
User(mid: number) {
}
getTotalViewFromJson(): number {
let mid = this.mid;
let url = "https://api.bilibili.com/x/space/upstat?mid=${mid}";
let response = HttpClient.get(url);
let data = JSON.parse(response);
let result = data["data"]["archive"]["view"];
return result;
}
getTotalViewFromHTML(): number {
let mid = this.mid;
let url = "https://space.bilibili.com/${mid}/";
let response = HttpClient.get(url);
let oldTotalView = extractTotalViewFromResponse(response);
return oldTotalView;
}
}
let oldTotalView = getTotalViewFromHTML(user);
/**
* @return a map, with pairs having
* key as video id,
* value as view count.
*/
let mapVideoView: { [aid: number]: number } = {};
while (true) {
let availableVideoIds = getAvailableVideoIds(user);
for (videoId of availableVideoIds) {
let view = mapVideoView[videoId];
if (view) {
view = getLatestVideoView();
}
}
}
sumVideoView(mapVideoView, oldTotalView);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment