【Python爬虫实战案例】采集城市桌游商家数据信息,做可视化演示

news2024/11/26 18:46:32

前言

这里容我罗嗦几句 😗

这个时间,我想大学生应该都回学校了吧,嘿嘿

现在应该蛮忙的,有些的还要准备开学考,临近毕业的朋友,也快要因为工作而烦恼了,但是!!

咱也是要有点娱乐时间的,俗话说劳逸结合嘛

正好周末我还要和朋友出去玩,这下雨天的,也不好在室外逛,索性就准备看看剧本杀或者其他桌游

咱就是干啥都是要有所准备的,这不得用python来采集采集这些桌游店的数据信息,比较比较哪家更好吗

再顺便做个 可视化数据展示

那咱就直接开始吧

请添加图片描述

环境使用:

  • Python 3.8
  • Pycharm

模块使用:

  • requests >>> pip install requests
  • re
  • csv

如何安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests)回车
  2. 在pycharm中点击Terminal(终端) 输入安装命令

基本流程思路

一. 数据来源分析

  1. 找url, 找我们想要数据从哪里来的
    采集美 —> 武汉 桌游 上商品数据
  2. 通过开发者工具进行抓包分析
    F12 或者鼠标右键点击检查, 选择 network

二. 代码实现步骤过程: 固定四大步骤

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

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

  3. 解析数据, 提取我们想要数据内容 —> 店铺基本信息

  4. 保存数据, 保存数据, 保存表格里面

  5. 多页数据采集

多页数据采集 —> 循环 for <目的>

分析请求url地址参数变化

在这里插入图片描述

实现代码

导入模块

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

创建文件

f = open('武汉桌游多页.csv', mode='a', newline='', encoding='utf-8')
# f 创建文件对象 fieldnames 字段名, 对应表头数据
csv_writer = csv.DictWriter(f, fieldnames=[
    '店名',
    '商圈',
    '店铺类型',
    '人均消费',
    '最低消费',
    '评分',
    '评论',
    '经度',
    '纬度',
    '详情页',
])
# 写入表头
csv_writer.writeheader()

1.发送请求

模拟浏览器对于url地址发送请求

  • 相对于长链接, 可以分段写入
    链接问号后面内容 属于请求参数 可以分开写
  • 批量替换
    1. 选中替换内容 ctrl + r
    2. 选中正则 .* 勾选上
    3. 使用正则命令替换
    (.?): (.)
    ‘$1’: ‘$2’,
  • headers请求头使用:

确定url请求地址

在这里插入图片描述

请求参数

    data = {
        'uuid': '760326fa1f194488b4b2.1659677166.1.0.0',
        'userid': '266252179',
        'limit': '32',
        'offset': page,
        'cateId': '-1',
        'q': '桌游',
    }
    # 伪装浏览器 headers请求头
    headers = {
        # Referer 防盗链 告诉服务器我们请求的网址从哪里跳转过来的 <行程码>
        'Referer': 'https://wh.meituan.com/',
        # User-Agent 用户代理 表示浏览器基本身份信息 <健康码>
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }
    # 发送请求 <Response [403]>   没有访问权限...请求失败了
    response = requests.get(url=url, params=data, headers=headers)
    # 得到响应对象
    print(response)

2. 获取数据

获取服务器返回响应数据 print(response.json())

3. 解析数据,

提取我们想要数据内容

  • response.json() —> 字典数据类型
  • 字典数据取值, 根据冒号左边的内容[键], 提取冒号右边的内容[值] 键值对取值

格式化输出 可以更加方便提取数据 pprint(response.json())

for index in response.json()['data']['searchResult']:
        href = f'https://www.meituan.com/xiuxianyule/{index["id"]}/'
        # 创建一个字典接收数据  百度滑轮设置pycharm字体大小
        # python基础语法知识 for循环遍历  字典创建与取值 字符串格式化方法
        dit = {
            '店名': index['title'],
            '商圈': index['areaname'],
            '店铺类型': index['backCateName'],
            '人均消费': index['avgprice'],
            '最低消费': index['lowestprice'],
            '评分': index['avgscore'],
            '评论': index['comments'],
            '经度': index['longitude'],
            '纬度': index['latitude'],
            '详情页': href
        }

4.写入数据

        csv_writer.writerow(dit)
        print(dit)

可视化代码

全部源码 点击文末名片领取~

在这里插入图片描述

效果展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

新版国家标准GB/T 28181—2022将于2023年7月1日正式实施,与GB/T 28181—2016差别有哪些?

新版国家标准GB/T28181-2022《公共安全视频监控联网系统信息传输、交换、控制技术要求》已于2022年12月30日发布&#xff0c;将于2023年7月1日正式实施。与GB/T 28181—2016相比&#xff0c;除结构调整和编辑性改动外&#xff0c;主要技术变化如下。——更改了标准范围&#xf…

排序:堆排序

一、树与二叉树 二、二叉树 1.二叉树&#xff1a;度不超过2的树&#xff08;度&#xff1a;树的分支&#xff09;&#xff0c;每个节点最多有两个孩子节点&#xff0c;两个孩子节点被区分为左孩子节点和右孩子节点。 2.满二叉树&#xff1a;一个二叉树&#xff0c;如果每一个层…

minio查询桶中文件,桶目录中文件

文章目录前言一、文件桶中的文件夹是什么&#xff1f;二、文件查询1.桶中文件查询2.桶中文件夹中的文件查询总结前言 文章再续,书接上文 minio进阶分页查询 说到了文件,可以实现分页查询,然后上次查询的是桶中的文件列表,这次遇到了需要数据隔离的文件,也就是需要在桶中再次建…

I.MX6ULL内核开发3:linux内核设计字符设备原理(简单版)

目录 一、Linux哲学 二、如何把字符设备抽象成文件 三、硬件层原理 四、驱动层原理 五、文件系统原理 一、Linux哲学 一切皆文件 二、如何把字符设备抽象成文件 open函数&#xff0c;在文件系统中找到指定文件的操作接口&#xff0c;绑定到进程task_struct->file_str…

2023-02-10 - 4 丰富的搜索功能

ES为用户提供了丰富的搜索功能&#xff1a;既有基本的搜索功能&#xff0c;又有搜索建议功能&#xff1b;既有常用的普通类型的匹配功能&#xff0c;又有基于地理位置的搜索功能&#xff1b;既提供了分页搜索功能&#xff0c;又提供了搜索的调试分析功能。 1 搜索辅助功能 俗…

人大金仓数据库的归档日志

归档日志 归档日志是非活动的WAL日志备份。通过使用归档日志&#xff0c;可以保留所有WAL日志的历史记录&#xff0c;当数据库处于ARCHIVELOG模式并进行日志切换时&#xff0c;后台进程archiver process会将WAL日志的内容保存到归档日志中&#xff0c;当数据库出现介质失败时&…

2017-PMLR-Neural Message Passing for Quantum Chemistry

2017-PMLR-Neural Message Passing for Quantum Chemistry Paper: https://arxiv.org/pdf/1704.01212.pdf Code: https://github.com/brain-research/mpnn 量子化学的神经信息传递 这篇文献作者主要是总结了先前神经网络模型的共性&#xff0c;提出了一种消息传递神经网络&am…

掌握了这项技能的性能测试师,90%都升职加薪了

初入职场的新人该怎么做才能让自己快速成长&#xff1f;在公司一直做着手工测试&#xff0c;如何才能提升自己&#xff0c;避免陷入“只涨年龄不涨经验”的尴尬&#xff1f;做为一名软件测试工程师&#xff0c;我们不得不去面对这些问题&#xff0c;有的人找到了答案&#xff0…

你不会还不知道如何监测用户的网络是否在线吧?

我最近遇到一个需求&#xff0c;要给网站添加一个用户网络离线提醒。要求我们要实时监测用户的网络状态&#xff0c;当用户断网了&#xff0c;我们要立马给用户弹出一个断网提醒。 那你可能会问&#xff0c;为什么要做这么一个需求呢&#xff1f;用户断网了&#xff0c;网页不…

华为、南卡和漫步者蓝牙耳机怎么选?国产高性价比蓝牙耳机推荐

随着蓝牙耳机的快速发展&#xff0c;现如今使用蓝牙耳机的人也越来越多。其中&#xff0c;日益增多的国产蓝牙耳机品牌也逐渐被大众认识、认可。目前一些热销的国产蓝牙耳机&#xff0c;如华为、南卡和漫步者等都是大家比较熟知的品牌。那么&#xff0c;这三个品牌哪个性价比高…

已解决SqlServer报错Arithmetic overflow error converting expression to data type int

本文记录(pymssql.OperationalError) (8115, b’Arithmetic overflow error converting expression to data type int.DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n’)报错解决方法&#xff0c;亲测有效&#x…

教师教学短视频录制有好用工具分享:

别再为制作微课发愁了啦&#xff0c;掌握这7款微课制作神器软件&#xff0c;让你的工作效率超级加倍&#xff01; 话不多说&#xff0c;一起来看看有哪些宝藏软件吧~ canvas 平台&#xff1a;电脑、网页、手机 定位&#xff1a;超多模板的制图软件 制作PPT、手抄报、奖状都…

手把手带你体验ChatGPT

1、ChatGPT介绍 ChatGPT&#xff0c;美国OpenAI 研发的聊天机器人程序 &#xff0c;于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c;它能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&#xff0c;真正像人…

修复 KubeSphere 内置 Jenkins 的 Apache Log4j2 漏洞

作者&#xff1a;老Z&#xff0c;中电信数智科技有限公司山东分公司运维架构师&#xff0c;云原生爱好者&#xff0c;目前专注于云原生运维&#xff0c;云原生领域技术栈涉及 Kubernetes、KubeSphere、DevOps、OpenStack、Ansible 等。 简介 生产环境 KubeSphere 3.3.0 部署的…

【网络~】

网络一级目录二、socket套接字三、UDP数据报套接字四、TCP流套接字一级目录 1.局域网、广域网 2.IP地址是什么&#xff1f; IP地址是标识主机在网络上的地址 IP地址是如何组成的&#xff1f; 点分十进制&#xff0c;将32位分为四个部分&#xff0c;每个部分一个字节&#xff…

He3 更新:中文

系统级更新 焕然一新的主界面 这一次对整体 UI 界面做了一个大的调整&#xff0c;整体更加扁平美观&#xff0c;布局更加紧凑协调&#xff0c;视觉层面更加集中聚焦。 旧版 新版 工具内容居中 上下文工具以及关联工具放置在右侧&#xff0c;工具内容居中&#xff0c;在使…

ASP.NET Core3.1实战教程---基于Jquery单文件上传

这个必须记录一下费劲啊&#xff01;废了我2天的时间&#xff0c;昔日的net快速已经没落....就文件上传都这么费劲。 先说下要求&#xff08;在线apk文件上传实现手机端整包更新&#xff09;&#xff1a; 1、为了简化需求文件上传和数据提交分开执行 2、选完文件后按钮变成上…

web前端——HTML+CSS

整体框架 HTML CSS CSS进阶 CSS盒子模型 定位装饰 CSS精灵图 目录 基础认识 HTML 一、HTML概念 二、HTML页面固定结构 三、HTML标签的结构 四、标签学习 1、排版标签 1&#xff09;标题标签 2&#xff09;段落标签 3&#xff09;换行标签 4&#xff09;水平线…

【LeetCode】1223. 掷骰子模拟

1223. 掷骰子模拟 题目描述 有一个骰子模拟器会每次投掷的时候生成一个 1 到 6 的随机数。 不过我们在使用它时有个约束&#xff0c;就是使得投掷骰子时&#xff0c;连续 掷出数字 i 的次数不能超过 rollMax[i]&#xff08;i 从 1 开始编号&#xff09;。 现在&#xff0c;…

第八节 Linux 设备树

Linux3.x 以后的版本才引入了设备树&#xff0c;设备树用于描述一个硬件平台的板级细节。在早些的linux内核&#xff0c;这些“硬件平台的板级细节”保存在linux 内核目录“/arch”&#xff0c;以ARM 平台为例“硬件平台的板级细节”保存在“/arch/arm/plat-xxx”和“/arch/arm…