Python带你实现批量自动点赞小程序

news/2024/11/24 23:51:39/

前言

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

所用知识点:

  • 动态数据抓包

  • requests发送请求

  • json数据解析

开发环境:

  • python 3.8 运行代码

  • pycharm 2022.3 辅助敲代码

  • requests 请求模块 ,第三方,需安装

    win + R 输入cmd 输入安装命令 pip install 模块名

爬虫案例如何实现

  1. 发送请求

  2. 获取数据

  3. 解析数据

  4. 保存数据

代码展示

导入模块

import requests
  1. 发送请求
url = 'https://*****/graphql'

伪装

# a. 请求方式是什么?
# post
# b. 请求头
headers = {# 登陆之后,cookie里面会存储账号信息'Cookie': 'kpf=PC_WEB; clientid=3; did=web_4bf90ac4df8aaef2d99527f1da1063fd; userId=3075864129; kpn=KUAISHOU_VISION; kuaishou.server.web_st=ChZrdWFpc2hvdS5zZXJ2ZXIud2ViLnN0EqABwgHhKM9-oogbgtutzowJEttqd5KamRJ9hNag-Elf82OEdJdt4lodSEThrdp1MLPgFl-6cdtZ1dshlUAYh-sHYS3dgBB8iZ_tqBzosa79OffPexwG6aWCkIgjdglclYP7KtYppEXrzXdwGt-2d-ZB6IxGTWINrZ5HOtAFzVukl4W23Vy2n19JBxuHMJDxpP4sBwW4rFP0QNklm91AbvsvsBoS7YoRGiN2PM_7zCD1Dj9m5oYoIiCaVnNEAqYiNgeeOzP3DC_9EWJBkH_O0cAr7fedfqlmeigFMAE; kuaishou.server.web_ph=507361000af22c186ded0b017d8e740f042a',# 域名'Host': 'www.****',# 防盗链'Referer': 'https://*****/profile/3xgapy2dxxbzsvw',# 设备信息'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36'
}
pcursor = ""
while True:# c. 请求参数(请求体)json = {'operationName':"visionProfilePhotoList",'query':"fragment photoContent on PhotoEntity {\n  id\n  duration\n  caption\n  originCaption\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  musicBlocked\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  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",'variables': {'userId': "3xjqise3ywy8abk", 'pcursor': pcursor, 'page': "profile"}}response = requests.post(url=url, headers=headers, json=json)
  1. 获取数据
    # Python字典json_data = response.json()
  1. 解析数据 提取数据 需要的数据
    feeds = json_data['data']['visionProfilePhotoList']['feeds']pcursor = json_data['data']['visionProfilePhotoList']['pcursor']for feed in feeds:caption = feed['photo']['caption']photoUrl = feed['photo']['photoUrl']# 点赞 / 评论 / ...._id = feed['photo']['id']author_id = feed['author']['id']expTag = feed['photo']['expTag']like_json = {'operationName':"visionVideoLike",'query':"mutation visionVideoLike($photoId: String, $photoAuthorId: String, $cancel: Int, $expTag: String) {\n  visionVideoLike(photoId: $photoId, photoAuthorId: $photoAuthorId, cancel: $cancel, expTag: $expTag) {\n    result\n    __typename\n  }\n}\n",'variables': {'cancel': 0, 'expTag': expTag, 'photoAuthorId': author_id, 'photoId': _id}}resp = requests.post(url=url, headers=headers, json=like_json)print(resp)# print(caption, photoUrl)# video_data = requests.get(photoUrl).content
  1. 保存数据
        # with open(f'{caption}.mp4', mode='wb') as f:#     f.write(video_data)if pcursor == 'no_more':break

尾语 💝

好了,今天的分享就差不多到这里了!

完整代码、更多资源、疑惑解答直接点击下方名片自取即可。

对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇👇


http://www.ppmy.cn/news/82560.html

相关文章

Java基础--->并发部分(3)【JUC、AQS】

文章目录 AQS(AbstractQueuedSynchronizer)AQS实现原理AQS操作重点方法 Java并发容器JUC(java.util.concurrent)ConcurrentHashMapCopyOnWriteArrayList AQS(AbstractQueuedSynchronizer) AbstractQueuedSy…

【Python共享文件】——Python快速搭建HTTP web服务实现文件共享并公网远程访问

文章目录 1. 前言2. 视频教程3. 本地文件服务器搭建3.1 python的安装和设置3.2 cpolar的安装和注册 4. 本地文件服务器的发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6. 结语 1. 前言 数据共享作为和连接作为互联网的基础应用,不仅在商业和办公场景有…

SpringBoot操作Mongodb

SpringBoot操作Mongodb 引言 MongoDB 特点 1、MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。 2、你可以在MongoDB记录中设置任何属性的索引(如:FirstName“Sameer”,Address“8 Gandhi Road”)来实现更快的排序。 3、你可以通过本地…

DAPP开发(一)——web3.0和智能合约

web1.0~3.0,很多年前,互联网没有那么发达,刚出来的时候,仅仅只能在网上浏览观看信息,这就是1.0,后来出现了很多的软件,人们不仅可以浏览还可以发表自己的看法,手机app百花齐放&#…

TTL、 RS-232,RS-485的区别

TTL、 RS-232,RS-485的区别 参考:【gt】TTL, RS-232,RS-485的区别 前言:串口、UART口、COM口、USB口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。 TTL :全双工 ,逻辑0对应…

剑指 Offer 58 - I. 翻转单词顺序

剑指 Offer 58 - I. 翻转单词顺序 题目: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a …

Spring Boot中使用Spring Data Elasticsearch访问Elasticsearch

Spring Boot中使用Spring Data Elasticsearch访问Elasticsearch Elasticsearch是一个分布式的全文搜索和分析引擎,它可以将海量数据进行快速的查询和聚合。Spring Data Elasticsearch是Spring Data家族中的一个成员,它提供了与Elasticsearch的集成&…

出门没带本子记的单词|10:20~10:40

susceptible adj 易受影响的 unify v 统一 auditory adj 听觉的 / ˈɔːdətɔːri / combat v 与...搏斗、防止 comfort n 舒适 constrain v 约束、迫使 fringe …