热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python案例篇:某短视频采集(不用等着大数据给你推送了)

前言大家好,我是辣条哥最近几天每天不为别的就是疯狂的刷短视频,不知道你们没有试过,明明来瞌睡了就会想我再刷三个,看到我喜欢的

在这里插入图片描述

前言


大家好,我是辣条哥

最近几天每天不为别的就是疯狂的刷短视频,不知道你们没有试过,明明来瞌睡了就会想我再刷三个,看到我喜欢的或者我三个都不喜欢我就睡~然后莫名其妙就看到外面天色有点微微发亮了 ~~~ 谁看谁不迷糊


在这里插入图片描述


于是乎我开始总结了一下,肯定是系统推送有问题不然不至于让我这一顿熬夜,那么这时候我的程序员毛病来了,为啥我不直接采集出来这样就没必要一个一个的去刷了吗? 说干就干,边干边记录然后就有了这个博文了~



在这里插入图片描述


目录

  • 前言
    • 采集目标
    • 工具准备
    • 项目思路解析
    • 简易源码分享


采集目标

在这里插入图片描述


工具准备

开发工具:pycharm
开发环境:python3.7, Windows10
使用工具包:requests


项目思路解析

我们今天需要获取的是某短视频的点赞视频信息,首先定位到我们需要的数据位置,通过抓包的方式进行准确的数据,点击快手页面进行登录,点击个人中心,点击我赞的视频,在当前页面进行抓包,获取到我们想要的数据信息
在这里插入图片描述

明确到自己需要采集的数据之后做我们爬虫的第一步,获取到我们目标地址:某短视频首页,通过requests发送网络请求,带上我们需要的请求头,这个请求头需要注意,他的请求头需要带上accept: /,不然在获取下一页的时候页数是不会变化的,这个需要重点注意,请求头入下:

headers = {'accept': '*/*','content-type': 'application/json','COOKIE': '','Host': 'www.kuaishou.com','Origin': 'https://www.xxxxxxxxxx.com','Referer': 'https://www.xxxxxxxxx.com/profile/3x382umv98zjz79','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36',
}

发送的是post请求需要携带的参数,pcursor是用来控制页数信息的,传递的数据是载荷数据,传输时以json接受就行,一下是提交的数据信息:

data = {"operationName": "visionProfileLikePhotoList","variables": {"pcursor": '',"page": "profile"},"query": "fragment photoContent on PhotoEntity {\n id\n duration\n caption\n likeCount\n viewCount\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 __typename\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 __typename\n }\n canAddComment\n llsid\n status\n currentPcursor\n __typename\n}\n\nquery visionProfileLikePhotoList($pcursor: String, $page: String, $webPageArea: String) {\n visionProfileLikePhotoList(pcursor: $pcursor, page: $page, webPageArea: $webPageArea) {\n result\n llsid\n webPageArea\n feeds {\n ...feedContent\n __typename\n }\n hostName\n pcursor\n __typename\n }\n}\n"
}

发送请求获取的数据为json数据信息转换成字典数据,从中提取出你想要的数据信息,筛选出我们想要的视频标题,以及视频的播放地址,对视频地址发送请求就行,想实现翻页效果需要注意,我们下一页的页面数据是在他上个数据的接口里,提取数据了时候一起提取出来


简易源码分享

import requestsdata = {"operationName": "visionProfileLikePhotoList","variables": {"pcursor": '',"page": "profile"},"query": "fragment photoContent on PhotoEntity {\n id\n duration\n caption\n likeCount\n viewCount\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 __typename\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 __typename\n }\n canAddComment\n llsid\n status\n currentPcursor\n __typename\n}\n\nquery visionProfileLikePhotoList($pcursor: String, $page: String, $webPageArea: String) {\n visionProfileLikePhotoList(pcursor: $pcursor, page: $page, webPageArea: $webPageArea) {\n result\n llsid\n webPageArea\n feeds {\n ...feedContent\n __typename\n }\n hostName\n pcursor\n __typename\n }\n}\n"
}headers = {'accept': '*/*','content-type': 'application/json','COOKIE': '','Host': 'www.xxxxxxxxxx.com','Origin': 'https://www.xxxxxxxx.com','Referer': 'https://www.xxxxxxxx.com/profile/3x382umv98zjz79','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36',
}url = 'https://www.xxxxxxxx.com/graphql'
res = requests.post(url, headers=headers, json=data)
for i in res.json()['data']['visionProfileLikePhotoList']['feeds']:# print(i)title = i['photo']['caption']play_url = i['photo']['photoUrl']res = requests.get(play_url)# print(res.content)title = title.replace('#', '').replace('?', '').replace('\n', '')with open('某短视频/' + title + '.mp4', 'wb')as f:f.write(res.content)print('正在下载:{}'.format(title))

推荐阅读
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 文章目录简介HTTP请求过程HTTP状态码含义HTTP头部信息Cookie状态管理HTTP请求方式简介HTTP协议(超文本传输协议)是用于从WWW服务 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 最近在学Python,看了不少资料、视频,对爬虫比较感兴趣,爬过了网页文字、图片、视频。文字就不说了直接从网页上去根据标签分离出来就好了。图片和视频则需要在获取到相应的链接之后取做下载。以下是图片和视 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • python限制递归次数(python最大公约数递归)
    本文目录一览:1、python为什么要进行递归限制 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • JavaWeb中读取文件资源的路径问题及解决方法
    在JavaWeb开发中,读取文件资源的路径是一个常见的问题。本文介绍了使用绝对路径和相对路径两种方法来解决这个问题,并给出了相应的代码示例。同时,还讨论了使用绝对路径的优缺点,以及如何正确使用相对路径来读取文件。通过本文的学习,读者可以掌握在JavaWeb中正确找到和读取文件资源的方法。 ... [详细]
  • Python入门后,想要从事自由职业可以做哪方面工作?1.爬虫很多人入门Python的必修课之一就是web开发和爬虫。但是这两项想要赚钱的话 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
author-avatar
qa32qw51
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有