@heavysheep
2017-02-15T10:14:24.000000Z
字数 2278
阅读 1069
文档
需求:JAVA爬虫实现广场舞视频每日自动更新、清楚腐烂数据、去重等,不涉及UI和功能变动。
额外功能点:清晰度识别,缓存(周二会议讨论决定)
任务周期:2017年2月13日(周一) -- 2017年2月17日(周五)
人员:王子 康文根 沈吉祥
主流网站包括:糖豆广场舞,我要广场舞,中国太极拳网,99广场舞,广场舞大全等。
各网站播放方式、内容格式各有不同,鉴于H5原生不支持flv,且IOS不支持flash控件无法通过embed播放swf文件,选用99广场舞作为抓爬首选网站(默认MP4,获取层级低),中国太极拳网作为扩充和备用(MP4、flv格式,网站不稳定,获取层级中)。
没有舞队舞曲标签的数据,以空格为分割的第一元素为舞队,第二元素为舞曲(如图2)。
以上内容均可通过get方法访问获得的JSON获取,示例为:
requests.get(url=r'http://www.999d.com/index.php', params={
'v': 'video', #类型
'tid': '0',
'type': 'new', #排序方式
'difficulty': 0,
'ajax': '1',
'_': '1486721156085', #当前时间戳
'page': 1 #页面
})
需要注意列表界面内核详情界面内的发布时间不相同,因此对这两个元素都进行抓取。
另外MP3音乐通过访问右下角舞曲音乐无法获得链接,需要在视频抓取完毕后进入另一界面对所有获得的视频再次抓取MP3外链地址。
进入页面解析获得的第一、第三视频都是网站广告,真正地址是webkit_playlist列表中的第二个。
1.第一手数据完成提取后,直接存入mongoDB
。
2.访问mongoDB
获取数据,进行清晰度识别、去重、清除腐烂数据等操作,决定对mySQL
数据库的增、删、改等操作。
3.完成对mySQL
的操作,并保留操作日志。
完成测试后,每日对数据进行一次更新。
不背锅,等老王买了补。
本中间件搭载于出mongoDB和mySQL之间,用作对一手数据库做质量筛选以进入mySQL正式环境中。
从目前来看,99广场舞的外链属于永久外链,在该假设成立情况下,鉴于调用浏览器成本过高,使用访问外链检测state是否为200作为初步检测腐烂数据的方式。
在该假设不满足时,调用浏览器对mongoDB
内视频永久循环检测,以及时淘汰腐烂数据。
以外链作为检测去重的唯一值。