天一冷,就想大口吃肉,爬取一座城市里的烤肉店数据(附完整Python爬虫代码)
前言
天一冷,就想吃肉,贴好秋膘才能好过冬。对于肉食主义者,吃肉简直幸福感爆棚!特别是烤肉,看着一块块肉慢慢变熟,听着烤盘上“滋滋”的声响,这种期待感是任何其他食物都无法带来的。如果说甜点是“乍见之欢”,那肉则是“久处不厌”。
为了造福“烤肉控”们,今天就用Python爬取一座城市的烤肉店数据,选出最适合的一家
准备工作
环境
- python 3.6
- pycharm
- requests >>> 发送请求 pip install requests
- csv >>> 保存数据
了解爬虫最基本的思路
一. 数据来源分析
- 确定我们爬取的内容是什么?
爬取店铺数据 - 去找这些东西是从哪里来的
通过开发者工具进行抓包分析, 分析数据来源
二. 代码实现过程
- 发送请求, 对于找到数据包发送请求
- 获取数据, 根据服务器给你返回的response数据来的
- 解析数据, 提取我们想要的内容数据
- 保存数据, 保存到csv文件
- 多页爬取, 根据url地址参数变化
代码实现过程
1. 发送请求
url = 'https://apimobile.某tuan.com/group/v4/poi/pcsearch/70'
data = {'uuid': '6e481fe03995425389b9.1630752137.1.0.0','userid': '266252179','limit': '32','offset': 32,'cateId': '-1','q': '烤肉','token': '4MJy5kaiY_0MoirG34NJTcVUbz0AAAAAkQ4AAF4NOv8TNNdNqymsxWRtJVUW4NjQFW35_twZkd49gZqFzL1IOHxnL0s4hB03zfr3Pg',
}
# 请求头 都是可以从开发者工具里面直接复制粘贴
# ser-Agent: 浏览器的基本信息
headers = {'Referer': 'https://chs.某tuan.com/','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, params=data, headers=headers)
200 表示请求成功 状态码 403 你没有访问权限
2. 获取数据
print(response.json())
3. 解析数据
result = response.json()['data']['searchResult']
# [] 列表 把里面每个元素都提取出来 for循环遍历
for index in result:# pprint.pprint(index)# f'{}' 字符串格式化index_url = f'https://www.某tuan.com/meishi/{index["id"]}/'# ctrl + Ddit = {'店铺名称': index['title'],'店铺评分': index['avgscore'],'评论数量': index['comments'],'人均消费': index['avgprice'],'所在商圈': index['areaname'],'店铺类型': index['backCateName'],'详情页': index_url,}csv_writer.writerow(dit)print(dit)
4. 保存数据
f = open('烤肉数据.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['店铺名称','店铺评分','评论数量','人均消费','所在商圈','店铺类型','详情页',
])
csv_writer.writeheader() # 写入表头
5.翻页
for page in range(0, 1025, 32):url = 'https://apimobile.某tuan.com/group/v4/poi/pcsearch/70'data = {'uuid': '6e481fe03995425389b9.1630752137.1.0.0','userid': '266252179','limit': '32','offset': page,'cateId': '-1','q': '烤肉','token': '4MJy5kaiY_0MoirG34NJTcVUbz0AAAAAkQ4AAF4NOv8TNNdNqymsxWRtJVUW4NjQFW35_twZkd49gZqFzL1IOHxnL0s4hB03zfr3Pg',}
运行代码得到数据
完整代码
f = open('烤肉数据1.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['店铺名称','店铺评分','评论数量','人均消费','所在商圈','店铺类型','详情页',
])
csv_writer.writeheader() # 写入表头for page in range(0, 1025, 32):url = 'https://apimobile.某tuan.com/group/v4/poi/pcsearch/70'data = {'uuid': '6e481fe03995425389b9.1630752137.1.0.0','userid': '266252179','limit': '32','offset': page,'cateId': '-1','q': '烤肉','token': '4MJy5kaiY_0MoirG34NJTcVUbz0AAAAAkQ4AAF4NOv8TNNdNqymsxWRtJVUW4NjQFW35_twZkd49gZqFzL1IOHxnL0s4hB03zfr3Pg',}headers = {'Referer': 'https://chs.某tuan.com/','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'}# 发送请求response = requests.get(url=url, params=data, headers=headers)# 200 表示请求成功 状态码 403 你没有访问权限result = response.json()['data']['searchResult']# [] 列表 把里面每个元素都提取出来 for循环遍历for index in result:# pprint.pprint(index)# f'{}' 字符串格式化index_url = f'https://www.meituan.com/meishi/{index["id"]}/'# ctrl + Ddit = {'店铺名称': index['title'],'店铺评分': index['avgscore'],'评论数量': index['comments'],'人均消费': index['avgprice'],'所在商圈': index['areaname'],'店铺类型': index['backCateName'],'详情页': index_url,}csv_writer.writerow(dit)print(dit)
天一冷,就想大口吃肉,爬取一座城市里的烤肉店数据(附完整Python爬虫代码)相关推荐
- 我不就是吃点肉,应该没事吧——爬取一座城市里的烤肉店数据(附完整Python爬虫代码)
写在前面的一点屁话: 对于肉食主义者,吃肉简直幸福感爆棚!特别是烤肉,看着一块块肉慢慢变熟,听着烤盘上"滋滋"的声响,这种期待感是任何其他食物都无法带来的.如果说甜点是" ...
- 谁还不爱吃肉?现在就教你采集一座城市里的烤肉店数据(附完整代码)
文章目录 前言 正文 准备环境 了解爬虫最基本的思路 一. 数据来源分析 二. 代码实现过程 代码实现过程 发送请求 2.获取数据 3.解析数据 4.解析数据 5.翻页 运行代码得到数据 完整代码 前 ...
- 一个使用 selenium 模块爬取(Twitter、New York Times)网站的可配置爬虫代码
Selenium_Crawler 一个使用 selenium 模块爬取(Twitter.New York Times)网站的可配置爬虫代码 代码更新 3/11/2021 修改报错信息不明确的bug 更 ...
- Python爬取马蜂窝各城市游记总数
Python爬取马蜂窝各城市游记总数 完整代码在最下方 马蜂窝的省和直辖市都有一个对应的编号,编写程序获取编号 第一步创建一个Spider的类,headers为一个字典,user-agent从浏览器中 ...
- 使用scrapy框架爬取中国各城市天气预报 实验
使用scrapy框架爬取山东各城市天气预报 实验 实验目的: 熟练安装 Python 扩展库 scrapy. 熟悉常见 HTML 标签的用法. 理解网页源代码结构. 理解 scrapy 框架工作原理. ...
- 怎样成为知乎大V?爬取张佳玮138w+知乎关注者:数据可视化
一.前言 作为简书上第一篇文章,先介绍下小背景,即为什么爬知乎第一大V张公子的138w+关注者信息? 其实之前也写过不少小爬虫,按照网上各种教程实例去练手,"不可避免"的爬过妹子图 ...
- Python爬取近10万条程序员招聘数据,告诉你哪类人才和技能最受热捧!
来源:凹凸数据 本文约5800字,建议阅读15分钟 本文带你了解当下企业究竟需要招聘什么样的人才?需要什么样的技能? 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对于& ...
- 我用Python爬取了难下载的电子教材(内附代码)
我用Python爬取了难下载的电子教材(内附代码) 第一次在CSDN上面分享经历,有点激动.本大二狗最近这段时间去不了学校又想看教材,不巧学习通上面的部分内容老师设置了不可下载啊.好在最近学习了一点P ...
- 爬取最近七天的天气情况并实现语言播报-Python综合实战
文章目录 前言 实现思路 实现过程 寻找目标网站 爬取目标网页 解析网页整理数据 创建语音接口 将数据与接口对接实现效果 实例全代码 脚本打包 总结 前言 Python是一门很强大的语言,用它可以做到 ...
最新文章
- ROW_NUMBER() OVER函数的基本用法
- 计算机文件夹报告范文,2020年计算机实验报告打印(例文).docx
- python_Day5_web开发(下)
- Jquery操作CSS常用方法
- 2016中国大学生程序设计竞赛(长春)Sequence II HDU - 5919 主席树
- 解决问题:HTTP 错误 401.1 - 未授权:登录失败【转】
- 图像去模糊代码 python_用Keras搭建GAN:图像去模糊中的应用(附代码)
- 日本富士通正考虑将PC业务并入联想
- 奇安信代码安全实验室获授华为鲲鹏计算平台漏洞奖励计划合作伙伴
- 推荐几个阿里、腾讯、美团大佬的公众号
- Spring Boot和Dubbo整合
- 【历史上的今天】7 月 3 日:人体工程学标准法案;消费电子领域先驱诞生;育碧发布 Uplay
- 网站支付宝登录授权具体实现
- word文档保存文件时出错_保存时如何自动创建Word文档的备份副本
- 现货黄金与白银现货的区别
- UGUI ContentSizeFitter 嵌套 适配
- superset:自定义标签乱码解决
- 用matlab实现熵权法,熵权法原理及matlab代码实现
- 牛客寒假训练营4-爆炸的符卡洋洋洒洒 (dp变形)
- spark yarn模式提交任务不成功(application state: ACCEPTED)