当前位置: 首页 > news >正文

简单爬虫案例——爬取快手视频

网址:aHR0cHM6Ly93d3cua3VhaXNob3UuY29tL3NlYXJjaC92aWRlbz9zZWFyY2hLZXk9JUU2JThCJTg5JUU5JTlEJUEy

找到视频接口:

视频链接在photourl中

 

完整代码:

import requestsimport re
url = 'https://www.kuaishou.com/graphql'
cookies = {'did': 'web_9e8cfa4403000587b9e7d67233e6b04c','didv': '1719811812378','kpf': 'PC_WEB','clientid': '3','kpn': 'KUAISHOU_VISION',
}headers = {'Accept-Language': 'zh-CN,zh;q=0.9','Cache-Control': 'no-cache','Connection': 'keep-alive',# 'Cookie': 'did=web_9e8cfa4403000587b9e7d67233e6b04c; didv=1719811812378; kpf=PC_WEB; clientid=3; kpn=KUAISHOU_VISION','Origin': 'https://www.kuaishou.com','Pragma': 'no-cache','Referer': 'https://www.kuaishou.com/search/video?searchKey=%E6%8B%89%E9%9D%A2','Sec-Fetch-Dest': 'empty','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-origin','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36','accept': '*/*','content-type': 'application/json','sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"',
}json_data = {'operationName': 'visionSearchPhoto','variables': {'keyword': '拉面','pcursor': '','page': 'search',},'query': 'fragment photoContent on PhotoEntity {\n  __typename\n  id\n  duration\n  caption\n  originCaption\n  likeCount\n  viewCount\n  commentCount\n  realLikeCount\n  coverUrl\n  photoUrl\n  photoH265Url\n  manifest\n  manifestH265\n  videoResource\n  coverUrls {\n    url\n    __typename\n  }\n  timestamp\n  expTag\n  animatedCoverUrl\n  distance\n  videoRatio\n  liked\n  stereoType\n  profileUserTopPhoto\n  musicBlocked\n  riskTagContent\n  riskTagUrl\n}\n\nfragment recoPhotoFragment on recoPhotoEntity {\n  __typename\n  id\n  duration\n  caption\n  originCaption\n  likeCount\n  viewCount\n  commentCount\n  realLikeCount\n  coverUrl\n  photoUrl\n  photoH265Url\n  manifest\n  manifestH265\n  videoResource\n  coverUrls {\n    url\n    __typename\n  }\n  timestamp\n  expTag\n  animatedCoverUrl\n  distance\n  videoRatio\n  liked\n  stereoType\n  profileUserTopPhoto\n  musicBlocked\n  riskTagContent\n  riskTagUrl\n}\n\nfragment feedContent on Feed {\n  type\n  author {\n    id\n    name\n    headerUrl\n    following\n    headerUrls {\n      url\n      __typename\n    }\n    __typename\n  }\n  photo {\n    ...photoContent\n    ...recoPhotoFragment\n    __typename\n  }\n  canAddComment\n  llsid\n  status\n  currentPcursor\n  tags {\n    type\n    name\n    __typename\n  }\n  __typename\n}\n\nquery visionSearchPhoto($keyword: String, $pcursor: String, $searchSessionId: String, $page: String, $webPageArea: String) {\n  visionSearchPhoto(keyword: $keyword, pcursor: $pcursor, searchSessionId: $searchSessionId, page: $page, webPageArea: $webPageArea) {\n    result\n    llsid\n    webPageArea\n    feeds {\n      ...feedContent\n      __typename\n    }\n    searchSessionId\n    pcursor\n    aladdinBanner {\n      imgUrl\n      link\n      __typename\n    }\n    __typename\n  }\n}\n',
}response = requests.post(url=url, cookies=cookies, headers=headers, json=json_data)
for index in response.json()['data']['visionSearchPhoto']['feeds']:title = index['photo']['caption']newtitle = re.sub(r'[\\/?<>:*|\n\r]','',title)link = index['photo']['photoUrl']print(title,link)content = requests.get(url=link,headers=headers).contentwith open('快手video//'+title+'.mp4','wb') as f:f.write(content)

结果展现:

 

 

相关文章:

  • BMA530 运动传感器
  • 【LeetCode】976. 三角形的最大周长
  • Kafka 位移
  • rpm包下载
  • 自然语言处理基本知识(1)
  • 【CSS】深入探讨 CSS 的 `calc()` 函数
  • 熊猫烧香是什么?
  • 什么是CC攻击,如何防止网站被CC攻击的方法
  • Spring Cloud LoadBalancer基础入门与应用实践
  • 如何获得更高质量的回答-chatgpt
  • vue为啥监听不了@scroll
  • word2016中新建页面显示出来的页面没有页眉页脚,只显示正文部分。解决办法
  • 事务的特性-原子性(Atomicity)、一致性(Consistency)、隔离性(Asolation)、持久性(Durability)
  • [ROS 系列学习教程] 建模与仿真 - 使用 ros_control 控制差速轮式机器人
  • python库 - json
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • canvas 高仿 Apple Watch 表盘
  • Fabric架构演变之路
  • Javascript基础之Array数组API
  • MySQL QA
  • Netty 4.1 源代码学习:线程模型
  • Odoo domain写法及运用
  • React-redux的原理以及使用
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 阿里研究院入选中国企业智库系统影响力榜
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 彻底搞懂浏览器Event-loop
  • 工作中总结前端开发流程--vue项目
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 为什么要用IPython/Jupyter?
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #、%和$符号在OGNL表达式中经常出现
  • #WEB前端(HTML属性)
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (C语言)fgets与fputs函数详解
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (万字长文)Spring的核心知识尽揽其中
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Linux下编译安装log4cxx
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .gitignore文件—git忽略文件
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET MVC第五章、模型绑定获取表单数据
  • .net 按比例显示图片的缩略图
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET连接数据库方式
  • .NET企业级应用架构设计系列之应用服务器
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .Net语言中的StringBuilder:入门到精通
  • [1525]字符统计2 (哈希)SDUT
  • [Android]竖直滑动选择器WheelView的实现