Skip to content

Commit 2adee89

Browse files
committed
b danmu
1 parent c5a9b5b commit 2adee89

13 files changed

+242
-69
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package com.stephen.lab.controller.crawler;
2+
3+
import com.alibaba.fastjson.JSON;
4+
import com.alibaba.fastjson.JSONArray;
5+
import com.stephen.lab.constant.semantic.ResultEnum;
6+
import com.stephen.lab.model.others.BDanmu;
7+
import com.stephen.lab.model.others.Bilibili;
8+
import com.stephen.lab.service.crawler.BDanmuService;
9+
import com.stephen.lab.service.crawler.BilibiliService;
10+
import com.stephen.lab.util.HttpUtils;
11+
import com.stephen.lab.util.LogRecod;
12+
import com.stephen.lab.util.Response;
13+
import org.apache.commons.io.IOUtils;
14+
import org.apache.xerces.impl.xpath.regex.Match;
15+
import org.springframework.beans.factory.annotation.Autowired;
16+
import org.springframework.web.bind.annotation.RequestMapping;
17+
import org.springframework.web.bind.annotation.RestController;
18+
import sun.rmi.runtime.Log;
19+
20+
import java.io.IOException;
21+
import java.util.List;
22+
import java.util.regex.Matcher;
23+
import java.util.regex.Pattern;
24+
25+
@RestController
26+
@RequestMapping("crawl_b")
27+
public class BilibiliController {
28+
@Autowired
29+
private BilibiliService bilibiliService;
30+
@Autowired
31+
private BDanmuService bDanmuService;
32+
33+
@RequestMapping("bilibili")
34+
public Response parseVedioId() {
35+
String url = "https://search.bilibili.com/api/search?search_type=all&keyword=%E5%95%A6%E5%95%A6%E5%95%A6";
36+
try {
37+
String jsonStr = HttpUtils.okrHttpGet(url);
38+
JSONArray jsonArray = JSON.parseObject(jsonStr).getJSONObject("result").getJSONArray("video");
39+
List<Bilibili> bilibiliList = jsonArray.toJavaList(Bilibili.class);
40+
bilibiliList.forEach(bilibili -> {
41+
bilibiliService.insert(bilibili);
42+
});
43+
return Response.success(bilibiliList);
44+
} catch (IOException e) {
45+
e.printStackTrace();
46+
}
47+
return Response.error(ResultEnum.FAIL_PARAM_WRONG);
48+
}
49+
50+
@RequestMapping("danmu")
51+
public Response danmu() {
52+
List<Bilibili> bilibiliList = bilibiliService.selectAll();
53+
for (Bilibili bilibili : bilibiliList) {
54+
crawlOneVedioDanmu(bilibili.getCid());
55+
}
56+
return Response.error(ResultEnum.FAIL_PARAM_WRONG);
57+
}
58+
59+
private Response crawlOneVedioDanmu(Long cid) {
60+
String url = "http://comment.bilibili.com/" + cid + ".xml";
61+
try {
62+
String xml = IOUtils.toString(HttpUtils.httpGet(url).getEntity().getContent());
63+
Pattern danmuPattern = Pattern.compile("<d(.*?)d>");
64+
Matcher danmuMatcher = danmuPattern.matcher(xml);
65+
while (danmuMatcher.find()) {
66+
String content = danmuMatcher.group();
67+
BDanmu danmu = new BDanmu();
68+
danmu.setAid(cid);
69+
danmu.setContent(content);
70+
try {
71+
bDanmuService.insert(danmu);
72+
} catch (Exception e) {
73+
LogRecod.print(cid);
74+
LogRecod.print(content);
75+
}
76+
LogRecod.print(content);
77+
}
78+
} catch (IOException e) {
79+
e.printStackTrace();
80+
}
81+
return null;
82+
}
83+
}

src/main/java/com/stephen/lab/controller/others/XieTianXuanController.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/main/java/com/stephen/lab/controller/paper/OptimitalKivaController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1324,7 +1324,7 @@ public Response perplexity(int totalNum) {
13241324
for (String content : contents) {
13251325
N += content.split("#").length;
13261326
}
1327-
for (int i = 1; i < totalNum; i++) {
1327+
for (int i = 6; i < totalNum; i++) {
13281328
int topicNum = i * 10;
13291329
trainAndSaveLdaModel(topicNum, kivaSimpleList);
13301330
double p = LdaModel.getPerplexity(N, topicNum, thetaFile, twordsFile);
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.stephen.lab.dao.crawler;
2+
3+
import com.stephen.lab.model.others.BDanmu;
4+
import com.stephen.lab.util.BaseDao;
5+
import org.apache.ibatis.annotations.Mapper;
6+
7+
/**
8+
* Created by stephen on 2018/4/20.
9+
*/
10+
@Mapper
11+
public interface BDanmuDao extends BaseDao<BDanmu> {
12+
}

src/main/java/com/stephen/lab/dao/others/BilibiliDao.java renamed to src/main/java/com/stephen/lab/dao/crawler/BilibiliDao.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.stephen.lab.dao.others;
1+
package com.stephen.lab.dao.crawler;
22

33
import com.stephen.lab.model.others.Bilibili;
44
import com.stephen.lab.util.BaseDao;
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.stephen.lab.model.others;
2+
3+
import javax.persistence.Column;
4+
import javax.persistence.Entity;
5+
import javax.persistence.Table;
6+
7+
/**
8+
* Created by stephen on 2018/4/20.
9+
*/
10+
@Entity
11+
@Table(name = "crawl_bilibili_danmu")
12+
public class BDanmu {
13+
@Column(name = "aid")
14+
private Long aid;
15+
@Column(name = "content")
16+
private String content;
17+
18+
public Long getAid() {
19+
return aid;
20+
}
21+
22+
public String getContent() {
23+
return content;
24+
}
25+
26+
public void setAid(Long aid) {
27+
this.aid = aid;
28+
}
29+
30+
public void setContent(String content) {
31+
this.content = content;
32+
}
33+
}

src/main/java/com/stephen/lab/model/others/Bilibili.java

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,63 @@
11
package com.stephen.lab.model.others;
22

3-
import org.apache.xpath.operations.Bool;
4-
3+
import javax.persistence.Column;
4+
import javax.persistence.Entity;
5+
import javax.persistence.Id;
6+
import javax.persistence.Table;
57
import java.util.Date;
68

9+
@Entity
10+
@Table(name = "crawl_bilibili")
711
public class Bilibili {
12+
@Id
13+
@Column(name = "aid")
814
private Long aid;
15+
@Column(name = "arcran")
916
private String arcran;
17+
@Column(name = "arcurl")
1018
private String arcurl;
19+
@Column(name = "author")
1120
private String author;
21+
@Column(name = "badgepay")
1222
private Boolean badgepay;
23+
@Column(name = "description")
1324
private String description;
25+
@Column(name = "duration")
1426
private String duration;
27+
@Column(name = "favorites")
1528
private Integer favorites;
29+
@Column(name = "hit_columns")
1630
private String hit_columns;
31+
@Column(name = "id")
1732
private Long id;
33+
@Column(name = "mid")
1834
private Long mid;
35+
@Column(name = "pic")
1936
private String pic;
37+
@Column(name = "play")
2038
private Long play;
39+
@Column(name = "pubdate")
2140
private Date pubdate;
41+
@Column(name = "rank_score")
2242
private Long rank_score;
43+
@Column(name = "review")
2344
private Integer review;
45+
@Column(name = "senddate")
2446
private Date senddate;
47+
@Column(name = "tag")
2548
private String tag;
49+
@Column(name = "title")
2650
private String title;
51+
@Column(name = "type")
2752
private String type;
53+
@Column(name = "typeid")
2854
private String typeid;
55+
@Column(name = "typename")
2956
private String typename;
57+
@Column(name = "video_review")
3058
private Integer video_review;
59+
@Column(name = "cid")
60+
private Long cid;
3161

3262
public Long getAid() {
3363
return aid;
@@ -212,4 +242,12 @@ public Integer getVideo_review() {
212242
public void setVideo_review(Integer video_review) {
213243
this.video_review = video_review;
214244
}
245+
246+
public Long getCid() {
247+
return cid;
248+
}
249+
250+
public void setCid(Long cid) {
251+
this.cid = cid;
252+
}
215253
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.stephen.lab.service.crawler;
2+
3+
import com.stephen.lab.model.others.BDanmu;
4+
5+
public interface BDanmuService {
6+
int insert(BDanmu bDanmu);
7+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.stephen.lab.service.crawler;
2+
3+
import com.stephen.lab.model.others.Bilibili;
4+
5+
import java.util.List;
6+
7+
public interface BilibiliService {
8+
int insert(Bilibili bilibili);
9+
10+
List<Bilibili> selectAll();
11+
12+
int updateSelective(Bilibili b);
13+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.stephen.lab.service.crawler.impl;
2+
3+
import com.stephen.lab.dao.crawler.BDanmuDao;
4+
import com.stephen.lab.dao.crawler.BilibiliDao;
5+
import com.stephen.lab.model.others.BDanmu;
6+
import com.stephen.lab.model.others.Bilibili;
7+
import com.stephen.lab.service.crawler.BDanmuService;
8+
import com.stephen.lab.service.crawler.BilibiliService;
9+
import org.springframework.beans.factory.annotation.Autowired;
10+
import org.springframework.stereotype.Service;
11+
12+
@Service
13+
public class BDanmuServiceImpl implements BDanmuService {
14+
@Autowired
15+
private BDanmuDao danmuDao;
16+
17+
18+
@Override
19+
public int insert(BDanmu bDanmu) {
20+
return danmuDao.insert(bDanmu);
21+
}
22+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.stephen.lab.service.crawler.impl;
2+
3+
import com.stephen.lab.dao.crawler.BilibiliDao;
4+
import com.stephen.lab.model.others.Bilibili;
5+
import com.stephen.lab.service.crawler.BilibiliService;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.stereotype.Service;
8+
9+
import java.util.List;
10+
11+
@Service
12+
public class BilibiliServiceImpl implements BilibiliService {
13+
@Autowired
14+
private BilibiliDao bilibiliDao;
15+
16+
@Override
17+
public int insert(Bilibili bilibili) {
18+
return bilibiliDao.insert(bilibili);
19+
}
20+
21+
@Override
22+
public List<Bilibili> selectAll() {
23+
return bilibiliDao.selectAll();
24+
}
25+
26+
@Override
27+
public int updateSelective(Bilibili b) {
28+
return bilibiliDao.updateByPrimaryKeySelective(b);
29+
}
30+
}

src/main/java/com/stephen/lab/service/others/BilibiliService.java

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/main/java/com/stephen/lab/service/others/impl/BilibiliServiceImpl.java

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)