【python】美女在召唤,python批量采集~

前言

嗨喽~大家好呀,这里是魔王呐 !

知识点:

  • 动态数据抓包

  • requests发送请求

  • json数据解析

开发环境:

  • python 3.8

    运行代码

  • pycharm 2021.2

    辅助敲代码

  • requests

    pip install requests

思路分析

如何去实现一个案例:

简单的 基础知识点内容比较多的案例

批量 采集 互联网当中数据

原理: 模拟 浏览器/客户端 向 服务器 发送网络请求

第一个步骤

找到数据来源

实现代码:

  1. 发送请求

  2. 获取数据

  3. 解析数据

  4. 保存数据

🎯 博主所有文章素材、解答、源码领取处:点击

代码展示

导入模块

import requests         # 发送请求 第三方模块
import re

请求头

# 请求体 也得是字典?
json = {
    'operationName': "visionSearchPhoto",
    '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 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",
    'variables': {'keyword': "换装", 'pcursor': "", 'page': "search"}
}

json和字典是两个东西

json和字典可以互相转换类型

到底什么是json?

json是一种数据交互格式

前后端数据交互

前端:网页

后端:数据传输

json在Python里面其实就是字符串 内容转换成 字典

日常生活中所用的字典

通过拼音找到字

通过:前面的找到:后面的内容

{“A”:“123”, “B”:{“C”:{“D”:“”}}}[“B”][“C”][“D”]

发送请求

response = requests.post(url=url, headers=headers, json=json)

获取数据

<Response [200]>: 请求成功

.text: 字符串

.json(): 字典数据

.content: 获取二进制数据 视频/音频/图片

json_dict = response.json()

解析数据

feeds = json_dict['data']['visionSearchPhoto']['feeds']
# len(feeds): 测量feeds的长度
for i in range(, len(feeds)):
    photoUrl = feeds[i]['photo']['photoUrl']
    caption = feeds[i]['photo']['caption']
    caption = re.sub('[\\\/:*?"<>|\\n]', '_', caption)
    print(caption, photoUrl)

保存数据

    video_data = requests.get(photoUrl).content
    with open(f'video/{caption}.mp4', mode='wb') as f:
        f.write(video_data)

效果展示

推荐往期文章

🎯 博主所有文章素材、解答、源码领取处:点击

对python感兴趣的小伙伴也可以看一下博主其他相关文章哦~

python小介绍:

python是什么?工作前景如何?怎么算有基础?爬数据违法嘛?。。

python数据分析前景:

用python分析“数据分析”到底值不值得学习,以及学完之后大概能拿到多少工资

python基础自测题:

Python 800 道习题 (°ー°〃) 测试你学废了嘛

最后推荐一套Python视频给大家,希望对大家有所帮助:

全套教程!你和大佬只有一步之遥【python教程】

尾语

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

0 条评论
请不要发布违法违规有害信息,如发现请及时举报或反馈
还没有人评论呢,速度抢占沙发!
相关文章
  • 对称加密 概述:对称加密就是加密和解密使用同一个密钥;就好比. 我要给你邮寄一个箱子. 上面怼上锁. 提前我把钥匙给了你一把, 我一把. 那么我在邮寄之前就可以把箱子锁上. 然后快递到你那里. 你用相...

  • 删除集合方案一:def delete_collection(): from pymilvus import utility utility.drop_collection(settin...

  • # 面向对象是非常重要的! # 抽象,是个思想,结构 # 小明 小红 小雨 都是人 # 海尔洗衣机 海东洗衣机 海西洗衣机 都是洗衣机 # 猫 狗 熊猫 都是动物 # 蓝图 # # class...

  • # 1.函数的作用域 # 全局变量的作用域: # 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。 # 全局变量所有作用域都可用,局部变量只能在本函数可用,变 # 量的使用顺序...

  • 在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目...

  • 版权声明:原创不易,本文禁止抄袭、转载,侵权必究! 一、开发环境 开发环境 :Windows10    Python3.6.4 第三方库 :Pygame1.9.6 IDE       :PyCha...

  • Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,使用Requests可以轻而易举的完成浏览器...

  • jupyter: jupytext: text_representation: extension: .md format_name: markdown ...

  • 1.有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? for x in range(0,5): for y in range(0,5): for...

  • 💡 作者:韩信子@ShowMeAI 📘 Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 📘 本文地址:https://showmeai...

  • [USACO1.3]修理牛棚 Barn Repair 题目描述 在一个月黑风高的暴风雨夜,Farmer John 的牛棚的屋顶、门被吹飞了 好在许多牛正在度假,所以牛棚没有住满。 牛棚一个紧挨着另一个...

  • 事情是这样的 晚上我正在聚精会神写代码(打游戏~) 突然,收到学妹给我发来的消息 还有一张自拍照 而且是可以放在结婚证上的那种哦 就是 之前帮过她几次忙 难道要以身...

  • 版权声明:原创不易,本文禁止抄袭、转载,侵权必究! 一、pywifi简介&安装 开发环境:Windows10    Python3.6.4 第三方库:pywifi-1.1.12 IDE      ...

  • 📕一、面向对象和面向过程异同 📄1、面向过程 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤。 面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 ...

  • 前言 大家早好、午好、晚好吖~ 最近,又爆出了许多例,身在长沙得我前段时间不是在做核酸就是在做核酸得路上 虽然现在还是隔一天一捅(小声哔哔:我真的遭不住)希望疫情早日过去 疫情尚未结束,我们需要做好...

  • 单选题 1、将原始数据进行集成、变换、维度规约、数值规约是在( C )过程中的任务。 A.频繁模式挖掘B. 分类和预测C.数据预处理D.数据流挖掘 2、以下哪个选项可以创建一个 3x3的单位矩阵? (...

  • 一、上传文件操作 上传文件是每个做自动化测试同学都会遇到,而且可以说是面试必考的问题,标准控件我们一般用send_keys()就能完成上传, 但是我们的测试网站的上传控件一般为自己封装的,用传统的上传...

  • Python 笔记 记录写 Python 需要注意的问题,以及一些技巧。 在 Python 中 Everything is Object。 Python 中的模块 standard modules ...

  • B站看到了水哥的自动化办公视频(5分钟,教你做个自动化软件拿来办公、刷副本、回微信 | 源码公开,开箱即用_哔哩哔哩_bilibili) 但因为用的是内网,所以没法直接pip install 所以这里...

  • Python基础之网络编程 一、网络编程前戏 1.什么是网络编程: 网络编程是指基于网络编写代码,能够实现数据的远程交互 2.学习网络编程的目的: 能够开发基于网络,实现与多用户交互的C/...