python一键采集高质量陪玩,心动主播随心选......

news2025/8/7 11:25:27

人生苦短,我用python

北京时间11月6日上午,2022英雄联盟全球总决赛(S12)冠亚军决赛在美国旧金山大通中心球馆进行,随着DRX的成功夺冠,在全球进一步掀起了电竞热潮。

newzoo 《2022电竞市场报告》显示,2022年,全球电竞观众数将增至5.32亿,同比增长8.7%。每月观看超过一次电竞赛事的核心用户达2.61亿以上,这个数字预计在2025年,将以8.1%的年复合增长率扩大至3.18亿人,全球电子竞技观众总数将超过6.4亿。

在这里插入图片描述

陪玩行业正在朝着标准化、规范化前进

近年来,电子竞技频频破圈,为陪玩行业的发展提供了绝佳的机遇。

大规模的“空巢游戏青年”,对陪玩服务嗷嗷待需。

那么今天我们就来采集一下陪玩小姐姐数据吧~

看看是否真的能月入过万

在这里插入图片描述


开发环境:

  • python 3.8
  • pycharm

模块使用:

  • import os: 文件操作
  • import re: 正则
  • import requests: 数据请求 —> pip install requests
  • import json: json数据转换
  • import csv: 保存csv数据
  • from tqdm import tqdm: 进度条显示 —> pip install tqdm
  • import base64: 转换base64格式

如果安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)

  2. 点击齿轮, 选择add

  3. 添加python安装路径

源码、资料电子书点击领取

pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)

  2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese

  3. 选择相应的插件点击 install(安装) 即可

  4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效


案例思路流程:

一. 数据来源分析:

  1. 确定需求, 采集那个网站上面什么数据

  2. 抓包分析, 通过开发者工具进行抓包分析

    <浏览器自带工具>开发者工具 会用 1 不会 0 实现爬虫案例必备工具

    F12 刷新网页 清空数据, 点击选择
    找相关数据包 --> 请求url 请求方式 得到数据是什么样

二. 代码实现步骤过程:

  1. 发送请求, 对于刚刚分析得到url地址发送请求

  2. 获取数据, 获取服务器返回响应数据 --> 开发者工具 response

  3. 解析数据, 提取我们想要数据内容, 音频试音, 陪玩照片, 基本陪玩数据

  4. 保存数据, 保存本地文件夹

代码

导入模块

# 导入数据请求模块 --> 第三方模块 需要在cmd里面或者pycharm终端里面进行安装 pip install requests
import requests
# 导入格式化输出模块 --> 内置模块 不需要安装
from pprint import pprint
# 导入json模块 --> 内置模块 不需要安装
import json
# 导入csv模块 --> 内置模块 不需要安装
import csv

import os.path

创建文件

c = open('data.csv', mode='a', encoding='utf-8-sig', newline='')
# c 文件对象 fieldnames 字段名
csv_writer = csv.DictWriter(c, fieldnames=[
    '昵称',
    '价格',
    '热度',
    '简介',
    '详情页',
])
# 写入表头
csv_writer.writeheader()

1. 发送请求, 对于刚刚分析得到url地址发送请求

headers是否添加, 看网站, 网站没什么反爬的话, 可以不用加

for page in range(1, 11):  # --> 1 2 3 4 5 6 7 8 9 10

确定请求网址

因为代码里有链接,不给过的,

所以我只能截个图展示一下,

你们可以根据下方图片添加完整哦~

在这里插入图片描述

或点击这里领取完整源码~

    # 请求参数 ---> 打座机电话, 都是区号
    data = {
        'act': 'userList',
        'page': page,
        'type': '1',
        'sex': '2',
        'voice': '1',
        'order': '1',
    }
    # 发送请求
    response = requests.post(url=url, data=data)

Response [200]>

响应对象 200 状态码表示请求成功

2. 获取数据, 获取服务器返回响应数据 --> 开发者工具 response

  • response.text 获取响应文本数据 字符串数据类型
  • response.json() 获取响应json字典数据 字典数据类型

区别数据类型不同

一般情况, 如果服务器返回数据, 带有 {} 花括号形式, 我们会取response.json(), 可以方便后续取值

3. 解析数据, 提取我们想要数据内容, 音频试音, 陪玩照片, 基本陪玩数据

返回数据字典数据类型, 字典取值 根据冒号左边的内容[键], 提取冒号右边的内容[值] --> 键值对取值

  • print(index) --> 打印字典数据, 呈现一行
  • pprint(index) --> 打印字典数据, 呈现多行, 展开效果
    # for循环遍历 list 列表 把列表里面的数据一条一条提取出来
    for index in response.json()['data']['rows']:
        # 陪玩基本数据获取 --> 保存表格里面
        dit = {
            '昵称': index['nickname'],
            '价格': index['price'],
            '热度': index['exp'],
            # replace() 字符串替换的方法 replace('替换之前的内容', '替换之后的内容')
            '简介': index['summary'].replace('\n', ''),
            # f'{}' 字符串格式化方法 format

在这里插入图片描述

4. 保存数据 三个数据

  • 保存音频和图片 --> 发送请求, 获取数据
        img_content = requests.get(url=img_url).content  # 图片二进制数据
        audio_content = requests.get(url=audio_url).content  # 音频二进制数据
        title = index["nickname"]
        # 自动创建文件夹 data\\憨憨\\
        file = f'data\\{title}\\'
        # 判断如果没有文件夹
        if not os.path.exists(file):
            # 自动创建文件夹
            os.makedirs(file)
        with open(file + title + '.jpg', mode='wb') as img:
            img.write(img_content)
        with open('img\\' + title + '.jpg', mode='wb') as img:
            img.write(img_content)
        with open(file + title + '.mp3', mode='wb') as audio:
            audio.write(audio_content)
        # 保存表格数据
        csv_writer.writerow(dit)
        print(dit)

效果

下面我们来看一看我们这代码运行的效果吧~

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

你必须非常努力

才能显得毫不费劲

今天也是元气满满的一天呢!!!

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

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

相关文章

《MySQL实战45讲》——学习笔记18 “索引失效、函数/隐式转换“【建议收藏】

本文介绍几种MYSQL中索引失效的典型SQL用法&#xff0c;包括对索引字段使用函数、索引字段隐式类型转换&#xff08;如字符串转数值类型&#xff0c;实质上也是使用CAST函数&#xff09;、索引字段隐式字符编码转换&#xff08;如utf8mb4字符集与utf8字符集的等值判断&#xff…

Leetcode101:对称二叉树

原文链接&#xff1a;101. 对称二叉树 - 力扣&#xff08;LeetCode&#xff09; 题目 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;r…

日志异常检测准确率低?一文掌握日志指标序列分类

背景 目前&#xff0c;日志异常检测算法采用基于时间序列的方法检测异常&#xff0c;具体为&#xff1a;日志结构化->日志模式识别->时间序列转换->异常检测。异常检测算法根据日志指标时序数据的周期性检测出历史新增、时段新增、时段突增、时段突降等多种异常。 然…

那么多优秀的自动化测试工具,而你只知道Selenium?

如今&#xff0c;作为一名软件测试工程师&#xff0c;几乎所有人都需要具备自动化测试相关的知识&#xff0c;并且懂得如何去利用工具&#xff0c;来为企业减少时间成本和错误成本。这是为什么呢&#xff1f; 在以前&#xff0c;测试人员一般都只需要扮演终端用户&#xff0c;…

【云原生 | Kubernetes 系列】--Gitops持续交付 ArgoCD 部署与概念

1. Pull Pipeline 使用Pull Pipeline可以不在集群以外的地方保存凭据,避免凭据泄露的风险 工作模式: 两个Git仓库. 程序代码 程序员维护 分支策略 Hotfix Feature Develop Release Master 部署配置 基于OAM管理 Updater CI流水线交付了新的Image Operator Spec 期望状态 …

UE5笔记【一】安装、第一个关卡:光线、原点、平面;光线、天空、云朵;内容抽屉;运动控制;

第一步&#xff1a;安装UE5 下载Epic Games客户端。 下载EpicGames客户端&#xff0c;完成注册账户。 然后选择【库】、选择【引擎版本】后面的加号【】、然后点击【下拉箭头】选择你要安装的版本。点击【安装】。 特别提醒&#xff1a;请找一块特别大的硬盘存储空间&#xf…

prometheus+alertmanager 企业微信告警

一、应用安装启动 1、软件准备 alertmanager-0.24.0.linux-amd64.tar.gz blackbox_exporter-0.22.0.linux-amd64.tar.gz node_exporter-1.4.0.linux-amd64.tar.gz prometheus-2.40.0-rc.0.linux-amd64.tar.gz 2、配置文件 cat /data/prometheus/prometheus.yml #根据自己情况…

liunx集成jmeter进行压测实践

首先liunx环境需要部署jdk 1,获取jmeter免安装包&#xff1a;点击我获取免安装包 2,获取jmeter-manger工具&#xff0c;用于生成报告&#xff0c;日志等 点击我获取工具 3,在服务器上新建一个文件夹存放jmeter&#xff0c;推荐在/usr/local/下面&#xff0c;我这里由于权限问…

微服务真的过时了吗?Twitter员工因为微服务被马斯克解雇了

马斯克吐槽微服务 最近Twitter因为马斯克收购而大幅裁员的消息闹得可谓是沸沸扬扬&#xff0c;但是最近马斯克吐槽Twitter内部服务200个RPC的新闻更是闹得不可开交&#xff0c;并且和员工在twitter上的争论更是因为了程序猿界的广泛转发和评论 微服务真的是一个糟糕的设计吗&a…

如何处理海量数据文件以及大文件数据查找

目录 一.处理海量整数文件 ①问&#xff1a;假定有40亿个无符号整数&#xff0c;判断某数据是否在其中&#xff1f; ②问&#xff1a;假定有40亿个无符号整数&#xff0c;找到只出现一次的数据&#xff0c;两次&#xff0c;三次...&#xff1f; ③问&#xff1a;两个文件各…

[ Linux ] 动静态库 手把手教你写一个自己的库

目录 静态库与动态库 生成 发布动静态库 形成发布静态库 形成发布动态库 一个makefile同时生成动静态库 如何使用动静态库 使用静态库 正确做法&#xff1a; 使用动态库 运行动态库 为什么动态库运行时有找库的步骤 静态库与动态库 静态库&#xff08;.a&#xff0…

聊一聊作为高并发系统基石之一的缓存,会用很简单,用好才是技术活

大家好&#xff0c;又见面了。 在服务端开发中&#xff0c;缓存常常被当做系统性能扛压的不二之选。在实施方案上&#xff0c;缓存使用策略虽有一定普适性&#xff0c;却也并非完全绝对&#xff0c;需要结合实际的项目诉求与场景进行综合权衡与考量&#xff0c;进而得出符合自…

Spring Security认证之用户定义

本文内容来自王松老师的《深入浅出Spring Security》&#xff0c;自己在学习的时候为了加深理解顺手抄录的&#xff0c;有时候还会写一些自己的想法。 在前面的案例中&#xff0c;我们登陆的用户信息是基于配置文件来配置的&#xff0c;其本质上是基于内存来实现的。但是在实际…

(5)多机器人集群编队策略

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、多机器人集群编队策略1、多机器人协同作业冲突问题&#xff08;1&#xff09;介绍&#xff08;2&#xff09;多机器人系统…

学会Spring Cloud微服务架构绝活,渣本也能进大厂

微服务架构是互联网很热门的话题&#xff0c;是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务&#xff0c;服务之间互相协调、互相配合&#xff0c;为用户提供最终价值。虽然微服务架构没有公认的技术标准和规范或者草案&#xff0c;但业界已经有一些很有…

C++程序设计--第三章内容

提前声明&#xff1a; 本文内容为华北水利水电大学研究生C课程&#xff0c;如有 侵权请告知&#xff0c;作者会予以删除 1.函数 函数作用 —— 任务划分&#xff1b;代码重用定义形式 类型 函数名 &#xff08; 形式参数表&#xff09;{语句序列}调用形式 函数名&#x…

数据结构:树

文章目录一.树的概念二.树的相关概念三.树的表示一.树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下…

『Java』数组中值得说的那些事

文章目录前言一、数组的创建及初始化&#x1f333;1、数组的创建&#x1f333;2、数组的初始化&#x1f351;&#xff08;1&#xff09;动态初始化&#x1f351;&#xff08;2&#xff09;静态初始化二、数组的使用&#x1f333;1、数组中元素访问&#x1f333;2、遍历数组&…

python3 爬虫(初试牛刀)

此文章仅供学习交流使用 在学习爬虫之前&#xff0c;把最近对于 VMware 的网络学习做个总结 接下来&#xff0c;步入正题&#xff01; 分析 Robots 协议 禁止所有爬虫访问任何目录的代码&#xff1a; User-agent: * Disallow:/允许所有爬虫访问任何目录的代码&#xff1a; …

2022年新版Pycharm通过project interpreter国内镜像源设置

2022年新版Pycharm通过project interpreter国内镜像源设置解决方案速览一、国内镜像源列表二、pycharm访问project interpreter解决方案速览 File->Settings->project interpreter-> -> Available Packages将options打勾&#xff0c;并输入-i https://pypi.tuna.…