写在前面的一点屁话:

对于肉食主义者,吃肉简直幸福感爆棚!特别是烤肉,看着一块块肉慢慢变熟,听着烤盘上“滋滋”的声响,这种期待感是任何其他食物都无法带来的。如果说甜点是“乍见之欢”,那肉则是“久处不厌”。

为了造福“烤肉控”们,今天就用Python爬取一座城市的烤肉店数据,选出最适合的一家烤肉店!

准备工作

环境

  • python 3.6
  • pycharm
  • requests >>> 发送请求 pip install requests
  • csv >>> 保存数据

了解爬虫最基本的思路

一. 数据来源分析

  1. 确定我们爬取的内容是什么?
    爬取店铺数据
  2. 去找这些东西是从哪里来的
    通过开发者工具进行抓包分析, 分析数据来源
    二. 代码实现过程
  3. 发送请求, 对于找到数据包发送请求
  4. 获取数据, 根据服务器给你返回的response数据来的
  5. 解析数据, 提取我们想要的内容数据
  6. 保存数据, 保存到csv文件
  7. 多页爬取, 根据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 + D
dit = {
'店铺名称': 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 + D
dit = {
'店铺名称': index['title'],
'店铺评分': index['avgscore'],
'评论数量': index['comments'],
'人均消费': index['avgprice'],
'所在商圈': index['areaname'],
'店铺类型': index['backCateName'],
'详情页': index_url,
}
csv_writer.writerow(dit)
print(dit)

我不就是吃点肉,应该没事吧——爬取一座城市里的烤肉店数据(附完整Python爬虫代码)的更多相关文章

  1. 32个Python爬虫项目让你一次吃到撑

    整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1]- 微信公众 ...

  2. python多线程爬取世纪佳缘女生资料并简单数据分析

    一. 目标 ​ 作为一只万年单身狗,一直很好奇女生找对象的时候都在想啥呢,这事也不好意思直接问身边的女生,不然别人还以为你要跟她表白啥的,况且工科出身的自己本来接触的女生就少,即使是挨个问遍,样本量也 ...

  3. 用Python来揭秘吃瓜群众是如何看待罗志祥事件的

    前言 最近娱乐圈可以说得上是热闹非凡,前有霸道总裁爱小三,正宫撕逼网红女,后有阳光大男孩罗志祥,被周扬青扒的名声扫地.贵圈的爱情故事,常人是难以理解的,正如贾旭明张康这段相声所说的这样,娱乐圈的爱情总 ...

  4. 【转】亿欧盘点:杭州十家代表性O2O企业

    [ 亿欧导读 ] 11月13日亿欧网将走入杭州,联合B座12楼.正和岛召开“2014 中国O2O新商业峰会“.亿欧网据O2O产业图谱,整理出杭州十家O2O企业:点我吧.快的打车.杭州19楼.婚礼纪.淘 ...

  5. linux就是这个范儿之融于心而表于行(1)

    原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明.否则将追究法律责 时间总是过得那么快,如流水一般哗啦啦的就淌走了一大堆!周遭事事沧桑变迁喧哗或耳语中流传的故事已渐模糊 ...

  6. 【原创】Thinking in BigData (1)大数据简介

    提到大数据,就不得不提到Hadoop,提到Hadoop,就不得不提到Google公布的3篇研究论文:GFS.MapReduce.BigTable,Google确实是一家伟大的公司,开启了全球的大数据时 ...

  7. python之路——16

    王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594 学习内容 1.内置函数 1. python 数据类型:int bool 数据结构:dic list tupl ...

  8. 一入爬虫深似海,从此游戏是路人!总结我的python爬虫学习笔记!

    前言 还记得是大学2年级的时候,偶然之间看到了学长在学习python:我就坐在旁边看他敲着代码,感觉很好奇.感觉很酷,从那之后,我就想和学长一样的厉害,就想让学长教我,请他吃了一周的饭,他答应了.从此 ...

  9. 年薪20万Python工程师进阶(7):Python资源大全,让你相见恨晚的Python库

    我是 环境管理 管理 Python 版本和环境的工具 pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. virtualenv – 创建独立 Python 环 ...

随机推荐

  1. 那些年uniapp踩过的坑之-------搜索框插件uni-search-bar字体和图标居中的问题

    用uniapp必不可少的就是搜索框 但是公司要求的是这样滴 但是 uni-search-bar这个插件给我的偏偏是这样子滴 这个时候我以为是简简单单的样式问题,但是多方调试无果之后才发现,这两个根本不 ...

  2. python爬虫---字体反爬

    目标地址:http://glidedsky.com/level/web/crawler-font-puzzle-1 打开google调试工具检查发现网页上和源码之中的数字不一样, 已经确认该题目为 字 ...

  3. 攻防世界-MISC:stegano

    这是攻防世界新手练习区的第五题,题目如下: 点击附件1下载,得到一个pdf文件,打开后内容如下: 把pdf文件里的内容复制到记事本上,发现一串A和B的字符串,不知道是什么(真让人头大) 参考一下WP, ...

  4. Spring mvc 使用@RequestBody 500错误

    今天在使用@RequestBody的时候,遇到一个http500错误,记录一下 让我们来看看我是怎么样错的,贴上代码 @PostMapping("/User") public Us ...

  5. 网络协议OSI模型-TCP/IP-三次握手

    OSI模型 在制定计算机网络标准方面,起着重大作用的两大国际组织是:国际电信联盟电信标准化部门,与国际 标准组织(ISO),虽然它们工作领域不同,但随着科学技术的发展,通信与信息处理之间的界限开始 变 ...

  6. 五四青年节,今天要学习。汇总5道难度不高但可能遇到的JS手写编程题

    壹 ❀ 引 时间一晃,今天已是五一假期最后一天了,没有出门,没有太多惊喜与意外.今天五四青年节,脑子里突然想起鲁迅先生以及悲欢并不相通的话,我的五一经历了什么呢,忍不住想说那大概是,父母教育孩子大声嚷 ...

  7. 动手实操丨RC522射频卡模块与IC卡完成充值消费查询的技术实现思路

    摘要:一文手把手教你利用RC522射频卡模块与IC卡完成充值消费查询的技术实现思路. 本文分享自华为云社区<​​​​​​​​​​​​​​RC522射频卡模块与IC卡完成充值消费查询的技术实现思路 ...

  8. DingtalkChatbot简单使用

    DingtalkChatbot 前言:该项目配合钉钉机器人 ,手机用户可以通过面对面建群创建单人群聊然后在电脑端 ···->智能群助手->添加机器人->自定义-> 然后添加机器 ...

  9. 48. Rotate Image - LeetCode

    Question 48. Rotate Image Solution 把这个二维数组(矩阵)看成一个一个环,循环每个环,循环每条边,每个边上的点进行旋转 public void rotate(int[ ...

  10. linux篇-centos7 安装cacti

    1 cacti运行环境准备 cacti需要php+apache+mysql+snmp+RRDTool,以及cacti本身.cacti本体是用php开发的网站,通过snmp对远端设备信息进行采集.apa ...