爬虫爬取qq看点视频 | 您所在的位置:网站首页 › qq看点3个字 › 爬虫爬取qq看点视频 |
我的上一篇文章有讲到graia机器人配置的问题,这次用他和爬虫实现一个比较有趣的东西 在里面可以找到contentJumpUrl,https://web.kandian.qq.com/tpl/sharePage?kandianshare.html5.qq.com=1&_bid=4563&pgyid=2008&rowkey=57060ed7437393ah&enc_u=uDW52aqCa5WF6tHvmNsoKg==这个链接就是我们需要爬取的链接 接下来要寻找视频的直链 把上面的contentjumpurl输入到浏览器中f12查找可以发现视频的直链在这里 这个请求需要的参数在这里 {“user”:{“account”:{“account_type”:1,“user_id”:“0”,“req_recommend_flag”:0}},“device”:{“app_version”:“0”,“qua”:"",“os”:3,“device_id”:"",“terminal_id”:"",“app_type”:3,“guid”:"",“ip”:"",“network”:0},“share_rowkey”:“57060ed7437393ah”,“page”:{“tab_id”:"",“rowkeys”:[“57060ed7437393ah”],“load_more_count”:0,“refresh_count”:0,“load_type”:1},“cookie”:"",“ext”:{}} 我们要获取的是这个rowkeys和keyws(内容一样) 这个参数可以在之前的contentJumpUrl里找到 所以我们要做的就是用mcl获取卡片信息里的url里的rowkeys参数然后爬取视频直链 代码如下 # -*- coding: UTF-8 -*- import json from graia.broadcast import Broadcast, BaseEvent from graia.application.entry import * from graia.application.message.elements.internal import * import requests from graia.scheduler import timers import graia.scheduler from graia.application.event.mirai import FriendRecallEvent, GroupRecallEvent accout=234654570 loop = asyncio.get_event_loop() bcc = Broadcast(loop=loop) sche = graia.scheduler.GraiaScheduler(loop=loop, broadcast=bcc) app = GraiaMiraiApplication( broadcast=bcc, connect_info=Session( host="http://localhost:10008", # 填入 httpapi 服务运行的地址 authKey="yszzsyszzs", # 填入 authKey account=accout, # 你的机器人的 qq 号 websocket=True # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作. )) def qqkandian(key): url = "https://cgi.kandian.qq.com/trpc.tkdqq.kd_share_video_recommend.ShareVideoRecommend/GetFeed?g_tk=0&bkn=0" data = {"user": {"account": {"account_type": 1, "user_id": "0", "req_recommend_flag": 0}}, "device": {"app_version": "0", "qua": "", "os": 3, "device_id": "", "terminal_id": "", "app_type": 3, "guid": "", "ip": "", "network": 0}, "share_rowkey": key, "page": {"tab_id": "", "rowkeys": [key], "load_more_count": 0, "refresh_count": 0, "load_type": 1}, "cookie": "", "ext": {}} return requests.post(url, json=data).json()['result']['feedData']['feeds'][0]['card']['feed']['tweet']['post']['video']['url'] @bcc.receiver("FriendMessage") async def friend_message_listener(message: MessageChain, app: GraiaMiraiApplication, friend: Friend): if message.get(App): con=message.get(App)[0].content con=json.loads(con) url=con['meta']['data']['contentJumpUrl'] key=url.split('&')[3].split('=')[1] await app.sendFriendMessage(friend, MessageChain.create([Plain(qqkandian(key))])) app.launch_blocking()graia的配置可以看我的上一篇文章 运行之后向机器人转发消息就可以看到视频的链接了 |
CopyRight 2018-2019 实验室设备网 版权所有 |