获取腾讯新闻APP文章、真实视频地址解析

由于业务需要,需要抓取解析腾讯视频真实地址、文章中的数据。经过1天的摸索,终于分析出来了,步骤如下:

一、获取发送Https请求文章地址返回的信息,经查看<html><body><div>中无任何文章信息,到这个地方可以确定,腾讯新闻文章是浏览器客户端进行解析数据装配的。此时就需要看js代码,发现里面的数据有unicode编码格式。需要把代码unicode转译一下,我这里使用java语言apache-common-lang包方法转码,信息中有用的就是<script>的window.__initData数据
可以看到content内容是我们所需要的。进而转化为json格式,获取有用数据,java代码如下:

// 示例信息
String returnHtml = "<script>window.__initData = {\"content\": {\"title\": \"河南焦作幼师*屏蔽的关键字*致23名幼儿*屏蔽的关键字*:知情人称因两老师闹矛盾\"}}......</script>";

// 获取可解析的json字符串数据
String str = jsStr.substring(jsStr.indexOf("<script>window.__initData =") + "<script>window.__initData =".length(), jsStr.indexOf(";</script>"));

// unicode转码
str = StringEscapeUtils.unescapeJava(str);

// 部分字符替换转义,防止json解析报错
str = str.replaceAll("\"\\{", "\\{").replaceAll("\\}\"", "\\}");

// 转化为JSON对象处理
JSONObject jsonObject = JSON.parseObject(str);

// 获取所有内容
JSONObject jsonContent = jsonObject.getJSONObject("content");

解析后的json主要数据如下:

{
    "content": {
        "cnt_attr": {
            "IMG_0": {
                "img": {
                    "imgurl0": {
                        "imgurl": "http://inews.gtimg.com/newsapp_match/0/8386465468/0"
                    }
                }
            },
            "IMG_1": {
                "img": {
                    "imgurl0": {
                        "imgurl": "http://inews.gtimg.com/newsapp_match/0/8391248870/0"
                    }
                }
            },
            "VIDEO_0": {
                "img": {
                    "imgurl1000": {
                        "imgurl": "http://inews.gtimg.com/newsapp_ls/0/8386704268_640480/0"
                    }
                },
                "vid": "s0856no20s6"
            }
        },
        "cnt_html": "<P>焦作市解放区区委相关部门了解到,事发系幼儿园一名教师向当日中班的食物中投入亚硝酸盐,目前,该教师已被警方刑拘。</P>",
        "desc": "焦作市解放区区委相关部门了解到,事发系幼儿园一名教师向当日中班的食物中投入亚硝酸盐",
        "image_count": 2,
        "longtitle": "河南焦作幼师*屏蔽的关键字*致23名幼儿*屏蔽的关键字*:知情人称因两老师闹矛盾",
        "pub_time": "2019-04-02 08:19:27",
        "pubtime": "2019-04-02",
        "source": "新京报",
        "title": "河南焦作幼师*屏蔽的关键字*致23名幼儿*屏蔽的关键字*:知情人称因两老师闹矛盾"
    }
}

通过数据可以获取到文章的相关信息

这里重点说一下视频解析的相关步骤:

二、获取视频关键参数vid

1、如果是纯视频网站,例如:https://view.inews.qq.com/a/20190311V0HAK600?uid=&cur_vid=s084748qz5b

根据cur_vid的值获取vid

2、如果是文章中嵌入视频:则通过前面获取到的json数据 获取到VIDEO_0中的vid

三、通过vid获取到视频的真实路径地址

发起一个http get请求 地址:http://vv.video.qq.com/getinfo?platform=101001&charge=0&otype=json&defn=shd&vids=vid值

返回信息做一下处理,转化成json格式,主要json格式数据如下:

{
	"vl": {
        "vi": [
            {
                "fn": "s0856no20s6.mp4",
                "fvkey": "4112E6BB6363A83937E2E5829C6565DDB5839AFF0653754DEFA66AE8780765559E69EEBE139DB246CA80D1F5EAAA0BB8FE6EFCFDAB2C1BB22B64E9BEF9F59CA17D3DBDC068BC23FAD136251E8A7D6C01313E9BA16027D0C661334F7A7DB7934172D535D1AE1486F5",
                "ti": "焦作一幼儿园老师投毒致23名幼儿中毒 知情人称因两老师闹矛盾",
                "ul": {
                    "ui": [
                        {
                            "url": "http://14.215.93.155/om.tc.qq.com/AgATFdfgDgaHAbqs7mZP-J39GAhMgjQvFUS1dcILxHok/uwMROfz0r5zEYaQXGdGnC2dfDmYZuJ2pY2FAhIKRx44JHPsG/"
                        },
                        {
                            "url": "http://ugcws.video.gtimg.com/uwMROfz0r5zEYaQXGdGnCmdfDmaF5AooPRaJaJ0-CXKTz0g7/"
                        }
                    ]
                }
            }
        ]
    }
}

这里需要三个值: fn值,fvkey值,url值(取一个)

四、组装视频真实地址

最终视频地址就是 url+fn+"?"+fvkey=fvkey值

这里是拼接后的地址:

http://ugcws.video.gtimg.com/uwMROfz0r5zEYaQXGdGnCmdfDmaF5AooPRaJaJ0-CXKTz0g7/s0856no20s6.mp4?vkey=4112E6BB6363A83937E2E5829C6565DDB5839AFF0653754DEFA66AE8780765559E69EEBE139DB246CA80D1F5EAAA0BB8FE6EFCFDAB2C1BB22B64E9BEF9F59CA17D3DBDC068BC23FAD136251E8A7D6C01313E9BA16027D0C661334F7A7DB7934172D535D1AE1486F5

直接访问就可以获取到真实的视频地址,也可以直接保存成对应格式文件

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
根据提供的引用内容,uni.app腾讯位置服务逆地址解析的步骤如下: 1. 首先在腾讯位置服务中添加应用并生成Key。 2. 在代码中调用`getLocation()`函数来获取用户当前所在位置。 3. 在`getLocation()`函数内部调用腾讯地图的逆解析接口,将经纬度作为参数,发送请求。 4. 接收到逆解析接口返回的地址信息,并进行相应处理。 5. 将获取到的地址信息保存到本地或进行其他操作。 综上所述,uni.app腾讯位置服务逆地址解析的过程就是通过调用腾讯地图的逆解析接口,将经纬度转换为具体的地址信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [uni-app解析地址](https://blog.csdn.net/weixin_56740218/article/details/125411629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [腾讯位置服务-地址解析项目应用——uniapp,vue](https://blog.csdn.net/qq_53784895/article/details/126466390)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值