前言

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

俗话说的好:技能学了~就要用在自己喜欢得东西上!!

这我不得听个话~我喜欢小姐姐,跳舞的小姐姐

这不得用python把小姐姐舞采集下来~嘿嘿嘿


完整源码、素材皆可点击文章下方名片获取此处跳转


知识点:

  1. 采集基本流程

  2. re正则表达式简单使用

  3. requests

  4. json数据解析方法

  5. 数据保存


采集网站:


开发环境:

  • Python 3.8

  • Pycharm


模块使用:

  • requests >>> pip install requests 第三方模块

  • re

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

如果出现爆红 可能是因为 网络连接超时 切换国内镜像源


基本流程(固定):

一. 数据来源分析

  1. 确定采集内容是什么? (目标网址, 网址里面数据)

  2. 通过开发者工具进行抓包分析, 分析我们想要数据 通过请求那个url地址可以获得

    I. 通过分析可以知道 播放url地址是什么?

    II. 通过播放地址, 去分析找寻, 数据包是在哪?

    III. 通过两个数据包 请求参数对比, 可以知道 只要获取所有ID 就可以获取内容

    (图片id MP4ID 音乐ID 还是什么ID 都可以去列表页面获取)

    IV. 去分析 mp4ID可以从哪里获取 (一般情况都可以在列表页面获取)

我想要获取播放地址 >>> 要得到数据包 >>> 获取ID

二. 代码实现步骤 发送请求 获取数据 解析数据 保存数据

  1. 发送请求, 对于舞蹈列表页面发送请求

  2. 获取数据, 服务器返回数据内容

  3. 解析数据, 提取我们想要数据内容 ID

  4. 发送请求, 把ID传入到 数据包里面 发送请求

  5. 获取数据, 服务器返回数据内容

  6. 解析数据, 提取我们想要数据内容 标题 以及播放地址

  7. 保存数据, 把内容保存本地

  8. 多页数据采集


代码

(完整源码、素材皆可点击此处+获取)

导入模块

# 导入数据请求模块
import requests   # 第三方模块 pip install requests 需要自行安装
# 导入re正则表达式
import re   # 内置模块 不需要安装
# 导入格式化输出模块
import pprint   # 内置模块 不需要安装
  1. 发送请求, 对于舞蹈视频列表页面发送请求
for page in range(1, 11):print(f'正在爬取第{page}页的数据内容')url = f'https:// **** .com/g/all?set_id=51&order=hot&page={page}'# 爬虫是模拟浏览器对于服务器发送请求, 然后获取服务器返回数据内容# user-agent: 用户代理 表示浏览器基本身份信息  (一种简单反反爬手段)headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'}# 通过requests模块里面get请求方式对于url地址发送请求, 并且携带上headers请求进行伪装, 最后用自定义变量response接收返回数据response = requests.get(url=url, headers=headers)# <Response [200]> 表示请求成功, 请求网址成功了  *** 200状态码表示请求成功, 但是不一定能够得到数据
  1. 获取数据, 服务器返回数据内容 response.text 获取响应文本数据
    # print(response.text)
  1. 解析数据, 提取我们想要数据内容 视频ID
    # 解析方式: css re xpath# <li data-vid="676382675">  想要数据 可以(.*?) 从response.text 里面去找寻这样数据内容# .*?  是可以匹配任意字符(除了\n换行符以外)  如果你只是单纯提取数字 最好用 \d+ 匹配一个或者多个数字video_ids = re.findall('<li data-vid="(\d+)">', response.text)  # 返回列表数据for video_id in video_ids:  # 通过for循环遍历 提取列表里面元素 一个一个提取# print(video_id)
  1. 发送请求, 把视频ID传入到视频数据包里面发送请求

  2. 获取数据, 服务器返回数据内容

        # f 字符串格式化方法 {} 占位符video_info = f'https:// **** .com/moment/getMomentContent?videoId={video_id}&uid=&_=1647433310180'json_data = requests.get(url=video_info, headers=headers).json()# print(json_data)# pprint.pprint(json_data)# 根据冒号左边的内容, 提取冒号右边的内容
  1. 解析数据
        title = json_data['data']['moment']['title']video_url = json_data['data']['moment']['videoInfo']['definitions'][0]['url']
  1. 保存数据 >>> 发送请求 并且获取数据
        """response.text   >>> 文本数据返回字符串数据response.json() >>> json字典数据response.content >>> 二进制数据"""video_content = requests.get(url=video_url, headers=headers).contentwith open('video\\' + title + '.mp4', mode='wb') as f:f.write(video_content)print(title, video_url)



尾语

【python】喜欢XJJ?这不得来一波大采集?相关推荐

  1. 人们对Python在企业级开发中的10大误解

    From : 人们对Python在企业级开发中的10大误解 在PayPal的编程文化中存在着大量的语言多元化.除了长期流行的C++和Java,越来越多的团队选择JavaScript和Scala,Bra ...

  2. python程序员脱单攻略_520 情人节 :属于Python 程序员的脱单攻略大合集

    原标题:520 情人节 :属于Python 程序员的脱单攻略大合集 情人节年年有,但今年的 5.20 要比以往的更有意义. 2020.05.20 ,爱你爱你我爱你,如果再卡个时间(13:14),那就是 ...

  3. python b站 排行_用python爬虫追踪知乎/B站大V排行

    原标题:用python爬虫追踪知乎/B站大V排行 最近,我们的实训生清风小筑在学习和实践 python 的数据分析,前几周把知乎.B站.虎扑上的各种信息都抓了个遍,比如粉丝数.关注关系.发布时间.阅读 ...

  4. Python+Flask实现全国、全球疫情大数据可视化(二):网页页面布局+echarts可视化中国地图、世界地图、柱状图和折线图

    文章目录 相关文章 一.实现效果 二.页面布局html+css main.html main.css 三.echarts图表制作 1.全国累计趋势折线图ec_l1.js 2.全国趋势变化折线图ec_l ...

  5. 【阿尼亚喜欢BigData】“红亚杯”大数据环境搭建与数据采集技能线上专题赛——满分解析⑤

    大家好,喜欢Bigdata的阿尼亚来了!希望大家会喜欢阿尼亚的文章!!哇酷哇酷!!! 本次为师傅们带来的是"红亚杯"大数据环境搭建与数据采集技能线上专题赛--满分解析系列的第⑤期, ...

  6. 【阿尼亚喜欢BigData】“红亚杯”大数据环境搭建与数据采集技能线上专题赛——满分解析③

    大家好,喜欢Bigdata的阿尼亚来了!希望大家会喜欢阿尼亚的文章!!哇酷哇酷!!! 本次为师傅们带来的是"红亚杯"大数据环境搭建与数据采集技能线上专题赛--满分解析系列的第③期, ...

  7. 【阿尼亚喜欢BigData】“红亚杯”大数据环境搭建与数据采集技能线上专题赛——满分解析②

    大家好,喜欢Bigdata的阿尼亚来了!希望大家会喜欢阿尼亚的文章!!哇酷哇酷!!! 本次为师傅们带来的是"红亚杯"大数据环境搭建与数据采集技能线上专题赛--满分解析系列的第②期, ...

  8. Python再夺冠,上古语言COBOL大流行,IEEE Spectrum 2020年度编程语言排行榜出炉!...

    整理 | 屠敏 题图 | 东方 IC 出品 | CSDN 博客 领域驱动技术,技术鞭策领域. 近日,IEEE Spectrum 最新发布了 2020 年年度编程语言排行榜.IEEE Spectrum ...

  9. python 做个创越火线挂_一日一技:用Python做个能挂墙上的大钟表

    今天给大家分享 1 个非常实用的 python 技能--用 Python 做个能挂墙上的大钟表,先上成果视频: 本项目用到的库主要有 pygame . math . datetime 等,另外还用到一 ...

最新文章

  1. 黑客用上机器学习你慌不慌?这 7 种窃取数据的新手段快来认识一下!
  2. linux下crontab实现定时服务详解
  3. Javascript深入浅出
  4. 虚拟机+可信+云计算
  5. BroadCastReceiver简介
  6. JQuery 总结(4) DOM操作
  7. Servlet、Tomcat、 SpringMVC 之间的关系
  8. Hadoop学习之路(九)HDFS深入理解
  9. hotelling t2 matlab,pca主成份分析方法
  10. Java 中去除字符串中空格的方法
  11. 实时录制视频,实时去除人_录制实时演示,第2部分:软件设置
  12. ps导出切片批量改名
  13. OTL:通用数据库连接模板
  14. TPS,MIS,DSS,ESS,临时表
  15. 计算图替代——一种DNN框架计算图优化方法
  16. 中级的“信息系统管理工程师”、“系统集成项目管理工程师”和高级的“信息系统项目管理师”有什么区别?
  17. 张超 计算机 清华 论文,张超-清华大学航天航空学院
  18. 咸鱼带你学计算机网络—物理层(二)
  19. Centos 安装docker后 deamo 无法启动的问题 解决
  20. 常见的网络营销技巧有哪些?

热门文章

  1. 这不是一支烟斗 图灵链条 薛定谔的猫 [20160303]
  2. 如何在Win7安装U盘中加入USB3.0的支持
  3. Python程序 天天向上的力量有多大
  4. linux no mail for root,Linux定时任务Crontab使用 提示no crontab for root
  5. gcc的-g,-o,-c,-D,-w,-W,-Wall,-O3等参数的意义
  6. 神经网络中的概率分布函数
  7. openoffice安装及卸载方式
  8. caffe-segnet编译
  9. 开放的精神推动Aleph Objects的成功
  10. 芬兰:网上性骚扰可能要坐牢