前言

这里容我罗嗦几句 😗

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

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

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

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

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

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

那咱就直接开始吧

python实现模拟人工抓取pc端程序界面数据 python抓取桌面软件数据_json

环境使用:

  • 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地址参数变化

python实现模拟人工抓取pc端程序界面数据 python抓取桌面软件数据_数据_02

实现代码

导入模块

# 导入数据请求模块  ---> 第三方模块 需要在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请求地址

python实现模拟人工抓取pc端程序界面数据 python抓取桌面软件数据_爬虫_03

请求参数

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)

可视化代码

python实现模拟人工抓取pc端程序界面数据 python抓取桌面软件数据_数据_04

效果展示

python实现模拟人工抓取pc端程序界面数据 python抓取桌面软件数据_开发语言_05

python实现模拟人工抓取pc端程序界面数据 python抓取桌面软件数据_爬虫_06

python实现模拟人工抓取pc端程序界面数据 python抓取桌面软件数据_开发语言_07