python获取美某店铺数据,看看哪家烤肉店最受欢迎

前言

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

烤肉,是一道菜品,制作原料有猪肉、牛肉、蔬菜、海鲜等。

独具风味,历史悠久,有浓郁的香味和鲜美的味道,可大大提高食欲。

无论是嘴馋还是带女朋友、兄弟、父母去吃,都是不二之选。

今天,我们就来采集一下烤肉店的数据,看看都在哪里有吧~

环境使用:

  • 解释器版本 >>> python 3.8

  • 代码编辑器 >>> pycharm 2021.2

模块使用:

  • requests >>> python的第三方模块,用来发送网络请求

  • re >>> python独有的匹配字符串的模块

  • csv >>> 是数据处理中经常会用到的一种文件格式

第三方模块安装:

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

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

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

pip install -i https://pypi.doubanio.com/simple/ requests

代码怎么实现?

  1. 发送请求, 模拟浏览器对url地址发送请求 <为了得到数据>

  2. 获取数据, 获取服务器返回响应数据 --> response <得到所有数据>

  3. 解析数据, 提取我们想要的数据内容 <得到想要的数据>

  4. 保存数据, 保存表格文件

代码展示

导入模块

# 导入数据请求模块 --> 第三方模块, 需要安装 pip install requests
import requests
# 导入格式化输出模块
from pprint import pprint
# 导入csv模块
import csv

创建文件

f = open('烤肉.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '店名',
    '评分',
    '评论',
    '店铺类型',
    '商圈',
    '人均',
    '最低消费',
    '经度',
    '纬度',
    '详情页',
])
csv_writer.writeheader()

“”"
1. 发送请求

模拟浏览器对url地址发送请求 <为了得到数据>

<Response [403]>

403 状态码 没有访问权限 一定要加防盗链

模拟浏览器 为了防止被反爬

cookies host referer UA

“”"

# 请求链接
url = 'https://*****/group/v4/poi/pcsearch/70?uuid=1191c166b23545adaef7.1679637144.1.0.0&userid=266252179&limit=32&offset=32&cateId=-1&q=%E7%83%A4%E8%82%89&token=AgEcI8MGJ-mKhr9oT4VY_zjPV_oFYDXfbo9sEAaWhz5Ud0ZxeKhBNbm--AOvOEMZfMX1X8atA5u22QAAAABsFwAA631DsS1KNwy05foi_83hOjAmFHyzNkrbtWhFRpR9MOAObuDNmNMpKOe8SdRaRJ_n'
# 伪装模拟 --> 请求头
headers = {
    源码、解答、教程+V:pytho8987
    # Referer 防盗链, 告诉服务器请求链接, 是从哪里跳转过来
    'Referer': 'https://*****/',
    # 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 = requests.get(url=url, headers=headers)
# <Response [403]>
print(response)

“”"

2. 获取数据

获取服务器返回响应数据 --> response <得到所有数据>

response.json() 获取响应json字典数据

3. 解析数据

提取我们想要的数据内容 <得到想要的数据>

字典取值 get

键值对取值 --> 根据冒号左边的内容[键], 提取冒号右边的内容[值]

Json字典数据, 一层一层提取

print(index) --> json数据, 呈现一行

pprint(index) --> json数据, 呈现多行 展开效果

“”"

# for循环遍历, 把列表里面元素一个一个提取出来
for index in response.json()['data']['searchResult']:
# 详情页链接: 
    link = f'https://*****/meishi/{index["id"]}/'
# 创建字典 --> 方便后续保存数据
    dit = {
        '店名': index['title'],
        '评分': index['avgscore'],
        '评论': index['comments'],
        '店铺类型': index['backCateName'],
        '商圈': index['areaname'],
        '人均': index['avgprice'],
        '最低消费': index['lowestprice'],
        '经度': index['longitude'],
        '纬度': index['latitude'],
        '详情页': link,
    }
    csv_writer.writerow(dit)
    print(dit)

尾语 💝

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

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

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

—— 心灵鸡汤

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

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值