2019独角兽企业重金招聘Python工程师标准>>>

前言

  • 自己主要是IOS,但是也想业余时间学学后台的一点,之前用过mfc,c#,写点嵌入式辅佐小工具,现在入坑脱做IOS.所以,想向全栈走,就业余时间看看springboot相关,前三篇是不同类型的爬虫代表,今天说说下载对应资源的不同处理。本篇只说一些第三方API使用,其他的下载具体处理会在下期。

webmagic简介地址(请点击)

注意

  • 各种网站的资源都有防盗链处理,第一步,获取资源真实链接。第二步,分析防盗链机制。第三步,资源去重。

  • NicoNico视频资源是采用Cookies校验,破解难度大且麻烦,找第三方 http://www.movies-downloader.com,这里面有个post的搜索api可是使用。在爬的时候发现,老资源都会统一指到一个温馨提示,视频资源。简单地校验视频md5就可以去重了。

  • BiliBili视频资源是采用链接地址解密的办法,解析也可以用第三方 http://www.flvurl.cn/。暂时发现重复的不高。

  • Tumblr最简单什么加密都没有。直接下载就可以了,但是重复资源海量,可以对封面,头像,同时做md5作去重处理。

代码

哔哩哔哩第三方转换

  • 这个返回是Json格式,格式化相对较好。
/*** Created by ray on 2017/6/18.* 获取 BILIBILI 视频真实地址*/
@Service
public class FlvUrlService {@Value("${flvurl.appId}")String appIdKey;@AutowiredRestTemplate restTemplate;private String baseUrl = "http://api.v2.flvurl.cn/parse/";private Logger logger = LoggerFactory.getLogger(this.getClass());public JSONObject parse (String url){String reqUrl = baseUrl + "?appid=" + appIdKey + "&type=vod&url=" + url;String string = restTemplate.getForObject(reqUrl , String.class);JSONObject jsonObject = JSON.parseObject(string,JSONObject.class);return jsonObject;}public FlvUrlRecModel parseToObject (String url){String reqUrl = baseUrl + "?appid=" + appIdKey + "&type=vod&url=" + url;String string = "";FlvUrlRecModel jsonObject = null;try {string = restTemplate.getForObject(reqUrl , String.class);jsonObject = JSON.parseObject(string,FlvUrlRecModel.class);return jsonObject;}catch (Exception e){logger.error(reqUrl);return null;}}

NicoNico第三方转换

  • 这个返回是XML格式,要注意各种处理,还有容错。
/*** Created by ray on 2017/7/23.* 获取NICONICO 视频真实地址*/@Service
public class NicoVideoUrlService {@AutowiredRestTemplate restTemplate;//postprivate String baseUrl = "http://www.movies-downloader.com/a.cgi";private Logger logger = LoggerFactory.getLogger(this.getClass());public NicoVideoRecModel parse (String url){//url = "http://www.nicovideo.jp/watch/sm31610292";NicoVideoRecModel recModel = null;String reqUrl = baseUrl;try {//headHttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);//bodyMultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();map.add("url", url);//请求封装HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(map, headers);String body = restTemplate.postForEntity(reqUrl,request,String.class).getBody();//logger.info("req map:" + map.toString()  + " body:" + body);Html html = new Html(body);String aid = url.substring(url.lastIndexOf("/") + 1,url.length());String title = html.xpath("//b/text()").toString();String imgsrc = html.xpath("//img/@src").toString();String href = html.xpath("//a/@href").toString().split("=")[1];String videoUrl = "";videoUrl = URLDecoder.decode(href,"UTF-8");recModel = new NicoVideoRecModel();recModel.setAid(aid);recModel.setTitle(title);recModel.setImgsrc(imgsrc);recModel.setVideoUrl(videoUrl);logger.info("Nico Api:" + map.toString()  + " body:" + JSON.toJSONString(recModel));}catch (Exception e){logger.error(reqUrl);}return recModel;}}

原文:http://raychow.linkfun.top/2017/12/22/archives/9_javaSpring/spriderDown/index/

转载于:https://my.oschina.net/u/3729367/blog/1593884

B站,N站,汤站,爬虫下载资源总结与技巧(一)相关推荐

  1. 某站卖20的百度爬虫页面自动繁殖程序+教程自动SEO优化 附视频教程

    百度爬虫页面自动繁殖程序+教程自动SEO优化 附视频教程 某站卖20元: 源码说明 这款是百度爬虫页面自动繁殖泛目录程序.附视频教程 1. 只需采集关键词,无需更新任何文章.内容 2. 页面自动繁殖, ...

  2. 一个可以用来站内检索的简单爬虫

    昨晚一时兴起,感觉那个课程实验可以用来进行站内检索,于是搞到临晨三点多,实现了一个简单的可以用来进行站内检索的小爬虫. 站内检索,顾名思义,是用来对特定域名范围内进行检索.主要困难在于获得特定域的多个 ...

  3. 除了 P站,还有这些 站 ~~

    本文转自公众号:每日优质搜罗 点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 故立 ...

  4. 开发常用镜像站 - 阿里云镜像站

    开发常用镜像站 - 阿里云镜像站 阿里云官方镜像站:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 镜像站用途 开发过程中经常需要使用第三方包或下载某些国外服务器上的资源,因为众所周知的原因,慢 ...

  5. php手机建站,PHP免费开源建站系统含手机站V1.7.6

    PHP免费开源建站系统含手机站V1.7.6,喜欢就下载吧. 正文: 苹果CMS视频分享程序是一套采用PHP+MYSQL环境下运行的完善而强大的快速建站系统. 经过近多年的开发经验和技术积累,苹果CMS ...

  6. 浅析新站SEO和老站优化推广有哪些区别?

    众所周知,每个高权重优排名的老站都是从新站一步步走过来的,但是新网站与老站之间的SEO优化方式自然是不同的,在不同的优化时期要用不同的优化方式,这样才可以让网站SEO良性发展.就以大连网龙科技旗下产品 ...

  7. 怎么看b树是几阶_B站广告部混入A站内鬼?网友:请问怎么在B站看租借女友?...

    卡密娘在某APP上看到了一个非常有趣的B站广告,可能很多人会感到奇怪,不就是B站用一部番剧推APP吗?有啥好大惊小怪的呢?其实相信关注小伙伴们心中都有了答案,因为B站这个广告上出现的动画<租借女 ...

  8. 电商网站模板_阿里云建站:模板建站与定制建站怎么选(小白参考)

    企业建站不仅是企业形象的重要组成部分,更是将自身展示给客户乃至全球的窗口,因此越来越多的企业会选择建立自己的网站,因此,现在阿里云的建站产品也越来越火了,阿里云建站产品主要分为模板建站和定制建站,模板 ...

  9. 网博士自助建站系统_自助建站:自助建站到底好还是不好?

    自助建站到底好还是不好?很多想要做企业网站的企业都比较关心这个问题,因为自助建站便宜.快,有的自助建站做出来的效果还非常好,不输于定制的网站的效果,那为什么自助建站大都还很便宜呢?东西还好还便宜的东西 ...

最新文章

  1. SpringBoot BasicService
  2. R可视化绘制卡方分布图(Chi-Square Distribution)
  3. java.lang.Instrument 动态修改替换类代码
  4. 通过这12张手绘图,搞懂什么是微服务架构
  5. 模拟海_浙江平湖“海水稻”丰收的背后,有这家来自上海企业的科技“秘方”...
  6. Ubuntu下root密码认证错误
  7. redirect重定向后https变成了http如何解决
  8. 数据结构:五岔路口交通管理红绿灯设计
  9. 非常详细的Maven安装与配置教程
  10. 深度装机大师一键重装_“云骑士一键重装系统”,看标题就知道装系统原来如此简单...
  11. 解决OverflowError: int too large to convert to float的办法
  12. 百度地图自定义图标动画
  13. 用JAVA 创建自己的 A4 打印语言
  14. python arduino i2c1602_Arduino使用I2C转接板驱动1602液晶屏,小小白新手入门篇
  15. mysql 从大到小排序
  16. 回溯——机器零件加工最优加工顺序问题
  17. 什么样的自学Java网站才适合学习者?
  18. 谷歌学术+SCI-HUB一键下载SCI文献
  19. wps单文件版_微软Office手机版来了!完全免费+三合一!你还会用WPS吗?1分钟带你了解两者的不同!...
  20. 实例分析!如何快速搭建OA办公系统

热门文章

  1. 开发者测试android studio 试手
  2. RedHat配置yum源
  3. 关于python安装scipy模块的问题
  4. Google,Guava本地高效缓存
  5. 论搜索方法,低效的你简直在浪费生命(二)
  6. mysql中floor函数的作用是什么?
  7. openssl内存分配,查看内存泄露
  8. hadoop的基本搭建
  9. inline函数的作用
  10. 2011-08-15 “can’t create transaction lock on /v...