python获取快手账号列表数据

快手数据获取相对简单访问地址固定且不需要登录token
在这里插入图片描述
列表地址获取的固定接口
https://www.kuaishou.com/graphql
发送post请求注意每个快手账号对应的id

import time
from datetime import datetime
import logging
import json
import pymysql
import requests# 创建一个logger
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)  # 设置日志级别# 创建一个handler,用于写入日志文件
fh = logging.FileHandler('ks.log', encoding='utf-8')  # 日志文件名# 定义handler的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)# 给logger添加handler
logger.addHandler(fh)#!!!数据库链接需要调整
mydatabase = pymysql.connect(host='localhost',user='root',password='123456',database='ry',charset='utf8mb4')
cursor = mydatabase.cursor()cursor.execute('SELECT id,base_media_name,dy_url FROM `media_account_manager2` where `type_id` = 484 AND `status` = 3 and dy_url is not null'
)
result = cursor.fetchall()
headers = {'Cookie': 'kpf=PC_WEB; clientid=3; did=web_8239e5591749f85a281700fcf0834715; didv=1719032992223; kpn=KUAISHOU_VISION','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
now = datetime.now()
now_formatted_date = now.strftime("%Y-%m-%d")try:for row in result:m_id = row[0]ks_name = row[1]ks_url = row[2]time.sleep(5)print(ks_name)print('***************************************')urlKs = 'https://www.kuaishou.com/graphql'jsonObj = {"operationName":"visionProfilePhotoList","variables":{"userId":ks_url,"pcursor":"","page":"profile"},"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}\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}\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 visionProfilePhotoList($pcursor: String, $userId: String, $page: String, $webPageArea: String) {\n  visionProfilePhotoList(pcursor: $pcursor, userId: $userId, 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"}response = requests.post(url=urlKs, json=jsonObj, headers=headers)if response.status_code == 200:response_data2 = response.json()data = response_data2.get('data',{}).get('visionProfilePhotoList',{}).get('feeds',[])print(data)for item in data:itemName = item.get('photo',{}).get('caption','null')photoUrl = item.get('photo',{}).get('photoUrl','null')timestamp = item.get('photo',{}).get('timestamp','null')timestamp_s = timestamp / 1000dt_object = datetime.fromtimestamp(timestamp_s)# dt_object = datetime.fromtimestamp(timestamp)# formatted_date = dt_object.strftime('%Y-%m-%d')create_time_str = dt_object.strftime("%Y-%m-%d %H:%M:%S")print(itemName)#视频名称print(photoUrl)#视频地址print(create_time_str)#视频发布时间text = ''insert_query = "INSERT INTO `ry`.`media_content`(`title`, `pub_date`, `url`, `content`, `media_id`, `media_name`,`type_id`,`platform`) VALUES (%s,%s,%s,%s,%s,%s,%s,%s)"# 执行插入操作cursor.execute(insert_query,(itemName, create_time_str, photoUrl, text, m_id, ks_name, '483', '快手自动抓取'))# 提交事务mydatabase.commit()except Exception as e:logger.info('******快手获取发生错误********')logger.info(e)logger.info(item)logger.info('******快手账号:' + ks_name + ',数据获取异常******')
else:logger.info('******快手数据结束********')
finally:mydatabase.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/861876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬虫之12306模拟登陆

python爬虫之12306模拟登陆 登录流程: 1、登录界面输入账号密码,点击立即登录 2、弹出手机验证界面,输入身份证后4位,点击获取验证码等待验证码后手动输入,点击确定登录 实现代码如下: #需求&#xff1…

详细分析Springmvc中的@ModelAttribute基本知识(附Demo)

目录 前言1. 注解用法1.1 方法参数1.2 方法1.3 类 2. 注解场景2.1 表单参数2.2 AJAX请求2.3 文件上传 3. 实战4. 总结 前言 将请求参数绑定到模型对象上,或者在请求处理之前添加模型属性 可以在方法参数、方法或者类上使用 一般适用这几种场景: 表单…

联想至像M3070DNA打印机加粉及清零方法

基本参数: 产品类型:黑白激光多功能商用一体机(打印/复印/扫描) 网络功能:支持有线网络打印 最大处理幅面:A4 双面功能:自动 打印速度:30页/分钟(高速激光打印&…

HarmonyOS NEXT:华为开启全新操作系统时代

在全球科技浪潮的汹涌澎湃中,华为再次以创新者的姿态,引领了一场关于操作系统的革命。HarmonyOS NEXT,这一由华为倾力打造的分布式操作系统,不仅是对现有技术的一次大胆突破,更是对未来智能生活的一次深邃展望。 Harmo…

【耐水好】强耐水UV胶水是怎样的?

【耐水好】强耐水UV胶水是怎样的? 强耐水UV胶水是一种特殊的胶水,其设计重点在于其出色的耐水性能。以下是关于强耐水UV胶水的特点: 优异的耐水性能:这种胶水能在水环境下保持稳定的粘接强度,不易被水分解或削弱。因…

TextRank 算法

第1关:Jieba 在关键词提取中的应用 任务描述 本关任务:根据本关所学有关使用 Jieba 库进行关键词提取的知识,编写使用 Jieba 模块进行关键词提取的程序,并通过所有测试用例。 相关知识 为了完成本关任务,你需要掌握…

uniapp生成微信小程序二维码

文章目录 一、获取不限制的小程序码1、第一步:需要先获取ACCESS_TOKEN2、第二步:获取微信小程序二维码 二、获取小程序码1、第一步:需要先获取ACCESS_TOKEN2、第二步:获取微信小程序二维码 三、扫普通链接二维码打开小程序1、协议…

反向代购是怎么火起来的?今后的发展趋势如何?

反向代购和反向海淘的兴起可以归因于多个因素,这些因素共同推动了海外消费者对中国商品的需求和购买热潮。以下是对其火起来的原因的详细分析: 海外华人华侨的需求增加: 随着中国国际移民群体的扩大,海外华人华侨数量不断增多。这…

第三届仿真模拟、电子信息科学与技术国际学术会议(SMEI 2024,8月02-04)

随着仿真模拟技术的成熟和进步,仿真模拟技术越来越广泛地应用于工业工程、管理科学、社会经济、交通运输、生态环境、军事装备等各个科学领域,并深刻影响着信息技术和信息产业的发展。围绕仿真模拟、电子信息科学与技术等方面内容,为更好地促…

Gartner发布2024年企业高管增长议程:使网络安全投资与业务增长保持一致

网络安全投资和准备被视为推动企业发展的关键因素。除了避免损失之外,高管还应利用有效的以业务为中心的安全方法,通过大规模实现敏捷性和创新来推动收入增长。 主要发现 高增长公司通过扩大商业足迹来推动业绩,这需要大规模的创新、敏捷性和…

002 使用kibana操作ElasticSearch7.x

文章目录 4.使用kibana操作es4.1.文档操作1.put方式发送数据2.post方式发送数据3.查看索引文档 GET4.更新文档 POST5.删除文档&索引 DELETE6.批量添加数据_bulk 4.2.Query DLS(查询领域对象语言)1.url 检索数据语法2.查询所有数据3.查询全部数据并排序4.查询全部数据排序并…

时序分析基本概念介绍——min period 最小时钟周期

文章目录 前言一、什么是 min period?二、为什么检查 min period?三、如何设置 min period?四、如何检查 min period?五、如何修复 min period?总结 前言 我们在实际设计中可能会碰到这种情况,如果我们的m…

介绍ES6中的class类:(一) 类的基本语法

一、类的由来与简介 1. 简介 很早很早之前,在JavaScript的世界里,生成实例对象的传统方法是通过构造函数。 嗯哼? function Point(x, y) {this.x x;this.y y; }Point.prototype.toString function () {return ( this.x , this.y )…

计算机图形学入门18:阴影映射

1.前言 前面几篇关于光栅化的文章中介绍了如何计算物体表面的光照,但是着色并不会进行阴影的计算,阴影需要单独进行处理,目前最常用的阴影计算技术之一就是Shadow Mapping技术,也就是俗称的阴影映射技术。 2.阴影映射 Shadow Map…

提升用户转化率秘诀!Xinstall的H5拉起应用技术让您领先一步!

在移动互联网时代,App的推广和运营面临着诸多挑战。其中,H5页面如何高效、便捷地拉起应用,成为了一个亟待解决的问题。今天,我们就来谈谈如何利用Xinstall品牌,轻松解决这一痛点,提升用户体验,助…

boss直聘招聘数据爬取及可视化分析2.0

boss直聘招聘数据爬取及可视化分析2.0 一、需求介绍二、完整代码2.1 爬虫代码2.2 数据可视化模块一、需求介绍 笔者在前两篇介绍boss直聘招聘数据爬取和可视化分析的博客的基础上,对代码和功能进行了完善。在数据爬取的模块,代码更加简洁易懂,且性能更加稳定;在数据可视化…

SpringBoot | 使用jwt令牌实现登录认证,使用Md5加密实现注册

对于登录认证中的令牌,其实就是一段字符串,那为什么要那么麻烦去用jwt令牌?其实对于登录这个业务,在平常我们实现这个功能时,可能大部分都是通过比对用户名和密码,只要正确,就登录成功&#xff…

关于 AD21导入电子元器件放置“3D体”STEP模型失去3D纹理贴图 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/139969415 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

https网站安全证书的作用与申请办法

HTTPS网站安全证书,正式名称为超文本传输安全协议证书,是通过SSL/TLS加密协议,保障互联网用户与网站间数据交换的安全性的关键技术。 一:HTTPS网站安全证书的作用 1 消除不安全提示:未使用https协议的网站&#xff0c…

threejs的学习(一)

1.万事开头难 先把环境搭好 https://github.com/mrdoob/three.js/tree/dev/src 把这个项目clone下来 yarn install 安装依赖 yarn start 启动项目 然后用vite新建一个项目 npm init vite@latest 选择第一个 Vanilla就行 然后选择js 然后成功创建之后,npm start npm …