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查询语言的更多相关文章

  1. Graphql介绍(Introduction to GraphQL)

    Introduction to GraphQL  GraphQL介绍 Learn about GraphQL, how it works, and how to use it in this seri ...

  2. GraphQL&DSL&API网关

    车联网服务non-RESTful架构改造实践   导读 在构建面向企业项目.多端的内容聚合类在线服务API设计的过程中,由于其定制特点,采用常规的restful开发模式,通常会导致大量雷同API重复开 ...

  3. REST 架构的替代方案 为什么说GraphQL是API的未来?

    Managing enterprise accounts - GitHub Docs https://docs.github.com/en/graphql/guides/managing-enterp ...

  4. Github上优秀的.NET Core项目

    Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:htt ...

  5. 【转载】Github上优秀的.NET Core项目

    Github上优秀的.NET Core项目 Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志. ...

  6. Github上优秀的.NET Core开源项目的集合

    内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:https://github.com/jasonhua95/ ...

  7. Facebook发布React 16 专利条款改为MIT开源协议

    9 月 26 日,用于构建 UI 的 JavaScript 库 React 16 的最新版本上线. Facebook 最终在现有的两种 React 版本中选择了出现 bug 概率最少的一款.这次版本更 ...

  8. 一系列令人敬畏的.NET核心库,工具,框架和软件

    内容 一般 框架,库和工具 API 应用框架 应用模板 身份验证和授权 Blockchain 博特 构建自动化 捆绑和缩小 高速缓存 CMS 代码分析和指标 压缩 编译器,管道工和语言 加密 数据库 ...

  9. F#周报2019年第27期

    新闻 介绍Femto--使用Fable绑定的自动化npm包解决方案 Babel 7.5.0发布,包含动态导入与F#管道 iOS 13预览版发布 视频及幻灯片 Fabulous--F#用于跨平台移动应用 ...

  10. 车联网服务non-RESTful架构改造实践

    导读 在构建面向企业项目.多端的内容聚合类在线服务API设计的过程中,由于其定制特点,采用常规的restful开发模式,通常会导致大量雷同API重复开发的窘境,本文介绍一种GraphQL查询语言+网关 ...

随机推荐

  1. 统计学习导论之R语言应用(二):R语言基础

    统计学习导论(ISLR) 参考资料 The Elements of Statistical Learning An Introduction to Statistical Learning 统计学习导 ...

  2. 2019-2020-1 20199318《Linux内核原理与分析》第十一周作业

    <Linux内核原理与分析> 第十一周作业 一.预备知识 什么是ShellShock? Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全 ...

  3. vs2010 项目属性窗口

    配置一些项目编译输出的类型(比如是编库还是编demo).编译输出结果的名字.编译输出结果的路径等等 Configuration Properties->General 配置在编译工程所需要的头文 ...

  4. QPushButton CSS样式

    QPushButton:!hover { color:white; font: 20pt "楷体"; border-radius:10px; border:1px solid rg ...

  5. Oracle UNDOTBS表空间的查看与扩容

    1.查看UNDO表空间使用情况 select tablespace_name,       round(sum(decode(status, 'ACTIVE', bytes, 'UNEXPIRED', ...

  6. oracle 数据库备份脚本(数据泵1-全库)

    #!/bin/sh# ################################################################### Powered by Ironfo# ## ...

  7. feign的工作原理

    1.开发微服务时,我们会在微服务的主程序入口添加EnableFignClient注解开启对Feign Client扫描加载处理,根据FignClient接口规范,定义接口并加上FignClient注解 ...

  8. 【Windows】查询端口占用并中止进程

    netstat -aon|findstr 7000 tasklist|findstr 14828 taskkill /pid 14828 /t /f

  9. c# HttpServer 的使用

    在很多的时候,我们写的应用程序需要提供一个信息说明或者告示功能,希望借助于HttpServer来发布一个简单的网站功能,但是又不想架一个臃肿的Http服务器功能, 这时候,标准框架提供的HttpSer ...

  10. 【Android异常】关于静态注册BroadcastReceiver接收不到系统广播的问题

    如果你静态注册的广播无法接收到消息,请先检查下:你的安卓版本是不是8.0+ 前言Google官方声明:Beginning with Android 8.0 (API level 26), the sy ...