爬快手,graphql查询语言
graphql查询语言:https://blog.csdn.net/qq_41882147/article/details/82966783
即:前端调用同一个接口传入不同的操作,得到不同的返回值
一直爬会封ip。
import requests, json, re, time
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36",
"Cookie": "kuaishou.live.bfb1s=9b8f70844293bed778aade6e0a8f9942; clientid=3; did=web_a9d0c104cbfd24374a5dad685b26dd70; client_key=65890b29; didv=1594279985370; Hm_lvt_86a27b7db2c5c0ae37fee4a8a35033ee=1594622985; Hm_lpvt_86a27b7db2c5c0ae37fee4a8a35033ee=1594885138; userId=127345174; userId=127345174; kuaishou.live.web_st=ChRrdWFpc2hvdS5saXZlLndlYi5zdBKgAVwApsvd6d5LEq37Xwy4gVgfinmYKMKK5hT0t2Dl7nctTR46oTuc1Ku530mlTABB5PbNPqsDF4m5GjgTeFBbDgi4xBQ3cXCQHWfg-T7b9259MfvgaMoKB-r4R92eUR3VgXQz8bK7cJDrX_zKVEhh3WZscoFagE2xXXmFB9nXlmXMei2w5TAQih60pOlFpVMgqakLULnxvPY-BFIlNyoUlU8aEgCrAu8bFEUPixNgRvVq1Nb0ZSIglCraqHTuUQ_z3VWWktXq5nxr2SJYhM3aujbIbG9pAj0oBTAB; kuaishou.live.web_ph=3e0f6f0394323c61795f3382dabebad6f407"}
def get_page1():
response = requests.get(url="https://live.kuaishou.com/profile/TXXW-666666", headers=headers)
res = response.text
# print(res)
video_page1 = re.findall('"id":"VideoFeed:(.*?)"',res)
print(video_page1)
def get_video(resp):
eid = re.findall('"id":"(.*?)"',resp)
id = []
count = 0
while len(eid)>count:
id.append(eid[count])
count=count+2
print(id)
return id
def get_page(pcursor):
json0 = {
"operationName": "publicFeedsQuery",
"variables": {
"principalId": "TXXW-666666",
"pcursor": pcursor,
"count": 24
},
"query": "query publicFeedsQuery($principalId: String, $pcursor: String, $count: Int) { publicFeeds(principalId: $principalId, pcursor: $pcursor, count: $count) { pcursor live { user { id avatar name __typename } watchingCount poster coverUrl caption id playUrls { quality url __typename } quality gameInfo { category name pubgSurvival type kingHero __typename } hasRedPack liveGuess expTag __typename } list { id thumbnailUrl poster workType type useVideoPlayer imgUrls imgSizes magicFace musicName caption location liked onlyFollowerCanComment relativeHeight timestamp width height counts { displayView displayLike displayComment __typename } user { id eid name avatar __typename } expTag __typename } __typename }}"
}
resp = requests.post(url="https://live.kuaishou.com/m_graphql",headers=headers,json=json0).text
resp_page = json.loads(resp)["data"]["publicFeeds"]["pcursor"]
# print(resp)
# li = json.loads(resp)["data"]["publicFeeds"]["list"]
# print(li)
id = get_video(resp)
uri_list = video_address(id)
video_detial(uri_list)
return get_page(resp_page)
def video_address(id):
url_list = []
for i in range(len(id)):
url_list.append("https://live.kuaishou.com/u/TXXW-666666/"+id[i]+"?did=web_a9d0c104cbfd24374a5dad685b26dd70")
return url_list
def video_detial(uri_list):
for i in range(len(uri_list)):
uri = uri_list[i]
response = requests.get(url=uri,headers=headers).text
# time.sleep(0.5)
try:
# 标题
title = re.findall('"caption":"(.*?)"',response)[0]
# 播放量
playback = re.findall('"displayView":"(.*?)"',response)[0]
# 点赞数
playlike = re.findall('"displayLike":"(.*?)"',response)[0]
print(uri,title,playback,playlike)
except Exception as e:
print(uri,"暂无数据")
if __name__ == '__main__':
# get_page("")
get_page1()
爬快手,graphql查询语言的更多相关文章
- Graphql介绍(Introduction to GraphQL)
Introduction to GraphQL GraphQL介绍 Learn about GraphQL, how it works, and how to use it in this seri ...
- GraphQL&DSL&API网关
车联网服务non-RESTful架构改造实践 导读 在构建面向企业项目.多端的内容聚合类在线服务API设计的过程中,由于其定制特点,采用常规的restful开发模式,通常会导致大量雷同API重复开 ...
- REST 架构的替代方案 为什么说GraphQL是API的未来?
Managing enterprise accounts - GitHub Docs https://docs.github.com/en/graphql/guides/managing-enterp ...
- Github上优秀的.NET Core项目
Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:htt ...
- 【转载】Github上优秀的.NET Core项目
Github上优秀的.NET Core项目 Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志. ...
- Github上优秀的.NET Core开源项目的集合
内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:https://github.com/jasonhua95/ ...
- Facebook发布React 16 专利条款改为MIT开源协议
9 月 26 日,用于构建 UI 的 JavaScript 库 React 16 的最新版本上线. Facebook 最终在现有的两种 React 版本中选择了出现 bug 概率最少的一款.这次版本更 ...
- 一系列令人敬畏的.NET核心库,工具,框架和软件
内容 一般 框架,库和工具 API 应用框架 应用模板 身份验证和授权 Blockchain 博特 构建自动化 捆绑和缩小 高速缓存 CMS 代码分析和指标 压缩 编译器,管道工和语言 加密 数据库 ...
- F#周报2019年第27期
新闻 介绍Femto--使用Fable绑定的自动化npm包解决方案 Babel 7.5.0发布,包含动态导入与F#管道 iOS 13预览版发布 视频及幻灯片 Fabulous--F#用于跨平台移动应用 ...
- 车联网服务non-RESTful架构改造实践
导读 在构建面向企业项目.多端的内容聚合类在线服务API设计的过程中,由于其定制特点,采用常规的restful开发模式,通常会导致大量雷同API重复开发的窘境,本文介绍一种GraphQL查询语言+网关 ...
随机推荐
- KVM虚拟机迁移至VMWare ESXi
需求 由于服务器迁移,为维护方便,将统一使用vmware 平台管理虚拟机,因此需将kvm 虚拟机统一迁至vmware kvm 磁盘镜像转换 查看虚拟机 # virsh list --all Id Na ...
- selenium浏览器参数设置详解——转
所有参数 https://peter.sh/experiments/chromium-command-line-switches/ 参数使用介绍 https://blog.csdn.net/XianZ ...
- kali Linux--打开&关闭防火墙
1.安装ufw apt-get install ufw 2.关闭防火墙 ufw disable. 3.开启防火墙 ufw enable
- sql-SQL Prompt
本人用的是win10系统,这里也着重介绍win10系统的激活方式 激活方式: 1.首先系统HOSTS文件添加以下屏蔽网络 127.0.0.1 red-gate.com 127.0.0.1 www.re ...
- opencv基本函数详解笔记
一.读取保存图片 Mat scrImage = imread("1.jpg"); //显示图像 imshow("原图", scrImage); //窗口等待 w ...
- Linux 第三节(重定向符,通配符,管道符,转义符,VIM编辑器)
1.输入重定向符 < 2.输出重定向符 将我们的命令原本要输出到屏幕的内容,输出到文件里面 标准信息 > 覆盖> 追加>> 错误信息 2> 覆盖2> ...
- Android中的特殊权限
AndroidManifest中定义的权限分为普通权限,危险权限和特殊权限. 普通权限指的是不会威胁到用户的安全和隐私的权限,只需要在AndroidManifest中声明一下就能直接使用. 危险权限指 ...
- Redis Template部分接口学习记录
Redis Template是操作redis的一个封装模板,让我们更加简便的去操作redis. 操作键类型的接口: GeoOperations Redis的地理空间操作,如GEOADD,GEORADI ...
- 狐漠漠养成日记 Cp.00001 开始养成计划
开始养成计划 今天是我开始这个"狐漠漠养成计划"的第一天(划掉). 看来是昨天出门前忘记保存了,昨天写的几百字内容全都没有了,今天其实已经是计划开始的第二天了. 因为昨天晚上出去喝 ...
- ESP32(WeMos D1 R32)开发资料
1.乐鑫官网 2.ESP32踩坑 ESP32控制摇杆,定义sw的引脚时一定要设置为上拉才行. 3.ESP32入门之arduino IDE环境搭建 4.ESP32 MicroPython编程官网文档 E ...