午餐不知道吃什么?用 Python 爬美团App评论选餐!

AI理财App靠AI吐槽出圈:产品拆解与大模型实现方案 在AI应用开发中,大模型正从简单的对话问答走向与真实业务场景的结合。尤其当生成式AI遇上个人理财,一个看似轻量但有传播力的产品逻辑便产生了:通过分析用户的消费记录,结合文本分类与行为统计,生成带有个性化表达的建议反馈。这种“数据→洞察→情绪反馈→行动建议”的闭环,不仅解决了传统记账工具留存难的问题,也拓宽了AI应用的产品边界。从工程实现看,FastAPI、规则引擎、任务调度与大模型API均可支撑其核心技术链路;从商业价值看,用户主动分享、订阅与理财导流都有较大的想象空间。对于关注移动AI应用、消费分类、提示 阅读详情

点击“开发者技术前线”,选择“星标?”

13:21 在看|星标|留言,  真爱



640?wx_fmt=jpeg

作者: 想的美


一、介绍


朋友暑假实践需要美团外卖APP评论这一份数据,一开始我想,这不就抓取网页源代码再从中提取数据就可以了吗,结果发现事实并非如此,情况和之前崔大讲过的分析Ajax来抓取今日头条街拍美图类似,都是通过异步加载的方式传输数据,不同的是这次的是通过JS传输,其他的基本思路基本一致,希望那些数据能帮到她吧

二、流程


  • 目标站点分析
    用浏览器打开美团外卖APP评论,F12

    1.首先我们要找到我们想要的评论数据,在第一次“失败”的直接抓取网页源代码后,我们发现它是通过Ajax加载的,我们点击JS选项,可以发现JS项目里面的返回结果有我们想要的数据,勾选Preserve log,当点击查看更多评论时,后台(JS里)会出现新的Ajax请求,发现还有参数start和的变化,其他请求参数不变,start的参数变化是以10递增的,的参数变化可就让人摸不着头脑(这个时候我们也不要方,因为大多情况下没有规律的参数都是没用的)

    640?wx_fmt=jpeg

2.经过我们对http://comment.mobilem.360.cn/comment/getComments?callback=jQuery17203361018749253357_1503362214558&baike=%E7%BE%8E%E5%9B%A2%E5%A4%96%E5%8D%96+Android_com.sankuai.meituan.takeoutnew&c=message&a=getmessage&start=0&count=10&_=1503362215647

进行分析后发现它的标准式为

‘http://comment.mobilem.360.cn/comment/getComments?&baike=%E7%BE%8E%E5%9B%A2%E5%A4%96%E5%8D%96+Android_com.sankuai.meituan.takeoutnew&start=’+str(i*10),i每次增加1,就包含新的十条评论的内容,所以我们通过改变i的值就可以拿到不同的数据

640?wx_fmt=png

  • 分析url的网页源代码,在源代码里有我们想要的评论数据,我们可以用正则(在这里正则还是比较好用的)把我们想要的信息弄下来

  • 开启循环,批量抓取

  • 保存数据至文本和数据库

#之前是这样处理的:
def parse_one_page(html):
pattern2 = re.compile('"m_type":"0",(.*?),"username"', re.S)
items=re.findall(pattern2,html)
for item in items:
item = "{" + item + "}"
item=json.loads(item)
write_to_file(item)
print(item)
save_to_mongo(item)

#皮皮哥告诉了我他的独家正则匹配方法可以匹配出来,这样的确获得的item没有编码问题
def parse_one_page(html):
pattern = '\"content\":\".*?"'
items=re.findall(pattern,html)
for item in items:
item =eval(item.split(':',1)[1])
write_to_file(item)
print(item)
save_to_mongo(item)

#对一般正则写法获得的item进行的方法,这是从皮皮哥那里得知的,亲测有效
def parse_one_page(html):
pattern = re.compile('rsion_name".*?"content":(.*?),"username"', re.S)
items=re.findall(pattern,html)
#print(items)
for item in items:
item = item.encode('utf-8').decode('unicode_escape')
write_to_file(item)
print(item)
save_to_mongo(item)

三、代码


#config.py
MONGO_URL='localhost'
MONGO_DB='meituan'
MONGO_TABLE='meituan'


 

import requests
from requests.exceptions import RequestException
import json
import re
from day31.config import *
import pymongo

client=pymongo.MongoClient(MONGO_URL)
db=client[MONGO_DB]
base_url='http://comment.mobilem.360.cn/comment/getComments?callback=jQuery17209056727722758744_1502991196139&baike=%E7%BE%8E%E5%9B%A2%E5%A4%96%E5%8D%96+Android_com.sankuai.meituan.takeoutnew&start='

def the_url(url):
try:
response = requests.get(url)
if response.status_code==200:
response.encoding='utf-8'
return response.text
return None
except RequestException:
print('请求出错')
return None

def the_total():
html=the_url(base_url)
pattern1 = re.compile('"total":(.*?),"messages"', re.S)
Total = re.findall(pattern1, html)
Total=int(':'.join(Total))
#print(type(Total))
show='总计评论%d条'%Total
print(show)
write_to_file(show)
return Total

def parse_one_page(html):
pattern2 = re.compile('"m_type":"0",(.*?),"username"', re.S)
items=re.findall(pattern2,html)
for item in items:
item = "{" + item + "}"
item=json.loads(item)
write_to_file(item)
print(item)
save_to_mongo(item)



def save_to_mongo(result):
try:
if db[MONGO_TABLE].insert(result):
print('储存到MongoDB成功',result)
except Exception:
print('储存到MongoDB失败',result)

def write_to_file(content):
with open('meituan_result.text','a',encoding='utf-8') as f:
f.write(json.dumps(content,ensure_ascii=False)+'\n')
f.close()

def main():
Total=the_total()
Total=int(Total/10)+2
for i in range(Total):
url = base_url + str(i*10)
if the_url(url)!=None:
html=the_url(url)
parse_one_page(html)
else:
print('输完啦')
ps='PS:因为有些评论空,所以实际评论比抓取的少' #这是我瞎猜的
write_to_file(ps)
print(ps)

if __name__ == '__main__':
main()

四、最后得到的数据视图和文件


640?wx_fmt=png

五、总结


1.程序报错很正常,不要一报错就问别人,先自己思考、百度

2.在数据类型处理方面的知识还要加强

更多爬虫内容:

充气娃娃什么感觉?Python 告诉你!

为了给小女友挑合适罩杯的内衣,我用  Python 爬了淘宝内衣店的数据!

被女朋友三番两次拉黑后,我用 Python 写了个“舔狗”必备神器

用 Python 来找合适的妹子

如何用 Python 了解女朋友 的情绪变化?

---END---

选择”开发者技术前线 “星标?,内容一触即达。点击原文更多惊喜!

开发者技术前线 汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。


历史推荐

Google 出品 Java 编码规范,强烈推荐!

三年半 Java 后端鹅厂面试经历

爱奇艺动态化框架 Qigsaw 正式开源!

640?

点个在看,解锁更多惊喜!

AI财务教练:基于规则引擎的本地化个人消费行为干预系统 个人财务管理的本质不是数据可视化,而是对日常消费行为的实时理解与正向引导。其核心原理在于通过结构化账单解析、多源交叉验证与分层规则引擎,建立‘感知—判断—反馈’闭环,替代依赖大模型的黑箱推荐。技术价值体现在高确定性(100%可追溯建议逻辑)、强隐私性(全链路本地处理)和真可用性(1.2秒内响应,适配手机截图等非标输入)。典型应用场景包括职场新人现金流预警、中老年家庭养老金辅助管理、以及高频弹性支出(如外卖/咖啡)的行为矫正。本文聚焦于不调用云端API、不上传敏感数据、不预设教条目标的轻量级AI Money 阅读详情

相关推荐

【算法】图解A* 搜索算法

A* 算法是启发式搜索算法,是根据Dijkstra算法改进而来。 问题引入 如下图所示,S为起始(start)节点,G为目标(goal)节点。 节点之间连线是两点的路径长度,如A到E的路径长度c(A,E) = 9。 节点旁的h值时当前节点到达目标节点(G)的预估值,如h(A)=15, 表示从当前点A到达目标点G的估计路径长度为15,此处h(x)即为启发函数,启发函数的设计有很多方法,具体可......

zhuhua造轮子的博客 4万+

不知道吃什么,随机看看吧

中午不知道吃什么,弄个随机数看看吧。#!/usr/bin/python # coding=utf-8 ''' 吃饭选择程序,请出于真诚、来自内心深处的做出选择 1:随机选几种看看 2:热门食物是哪些 ''' import random print __doc__ eat = {1:"茄丁面",2:"牛肉板面",3:"拉面",4:"麻辣烫",5:"大时代",6:"龙腾轩烤鱼",7:"饺子馆",

至尊玉的个人笔记 5483

Qt绘图库对决:QWT与QCustomPlot的实战选型指南

本文为Qt开发者提供了QWT与QCustomPlot两大绘图库的实战选型指南。文章从功能特性、性能资源、开发效率三大维度进行深度对比,并结合工业监控、科学计算、嵌入式设备等典型场景,给出了清晰的决策清单。对于需要专业科学图表(如极坐标、等高线图)的场景推荐QWT;对于追求高性能、实时性、快速开发及嵌入式部署的通用图表需求,QCustomPlot是更优选择。

alpha的博客 241

Python编程解决“今天午饭吃什么?”

import time import random food = ['鸡','鸭','鱼','肉','菜','蛋','面'] res = ['KFC','麦当劳','德克士','老娘舅','全聚德','达美乐'] def welcome(): #欢迎语 print('欢迎使用“选择困难症助手”!') time.sleep(1) print('今天中午吃什么呢?\...

sinat_41915699的博客 1万+

从零到一:桌面宠物的硬件架构设计与工程实践

本文详细介绍了基于STM32F103C8T6主控平台的桌面宠物机器人硬件架构设计与工程实践。内容涵盖电源管理、舵机控制、PCB布局及系统调试等核心环节,为硬件爱好者提供从零到一的完整开发指南,助力打造稳定可靠的智能桌面伴侣。

alice7model的博客 1112

生信实战:用bcftools玩转VCF文件处理(从压缩到注释全流程)

本文详细介绍了使用bcftools处理VCF文件的全流程实战指南。从数据准备、压缩索引、信息提取、质量统计到核心的变异过滤与功能注释,手把手教你高效管理基因组变异数据。重点阐述了如何利用bcftools进行VCF文件注释,整合外部数据库信息,为变异位点添加关键的生物学标签,是生物信息学数据分析的必备技能。

rgv23456789的博客 342

吃饭困难选择症python_一到吃饭不知道吃啥?美食困难选择症患者是这样解决的...

每次到了吃饭,总是不知道吃什么比较好。作为资深的吃货总是能面临各种各样的美食问题,只能看不能吃什么的也就算了。到了吃饭的点,不知道吃什么更是一种苦恼。归结了,大致是这样子的:top1:吃腻了每天来来回回就那么几种吃的,除非是真爱,不然再好吃的东西,吃久了也会腻的,换个口味也许会发现不一样的吃货天地。可是不知道换什么?没见过的吃的很难相信它会好吃?周围就那么几家餐馆?人生就是在于尝试,多种多样的东西...

weixin_39607837的博客 642

PostgreSQL高可用之主备复制

多个PostgreSQL可协同工作,如果主库发生宕机备库将迅速进行接管并对外提供服务以实现高可用。本文将从主备复制、主备切换、故障转移等角度进行实际测试演练。第一章主备复制是基础,通过主备复制可以得到一个或多个相同的实例。在主备复制的基础上通过第二章主备切换介绍了如何手工将主库与备库互换角色。在第三章中,采用了Keepalived进行实时监测,在主库宕机后,使用主备切换中提到的命令使备库升级为主库并对外提供服务,以达到PostgreSQL高可用的目标。

asdasdsaff的博客 1348

吃饭困难选择症python_Shake your deal:解决吃饭选择困难综合症

Shake your deal 是一款独树一帜的、令人兴奋和有趣的餐馆应用程序,它保证让你在结账时感到快乐。Shake your deal自动为客户提供世界各地的有趣、难忘的美味和令人愉快的餐厅晚餐备选,解决去哪吃的烦恼,并为客户推送惊喜折扣。餐厅账单100%都有折扣是真的吗?是的,这是真的!你可以得到100%的折扣,就是摇一摇你的手机这么简单,有时候最简单的事情往往是最好的。Shake your...

weixin_39649614的博客 723

微信小程序 - 最新图片组拖拽排序更换位置功能,类似微信朋友圈九宫格图片的拖动排序效果,微信小程序实现九宫格图片拖拽调换位置,小程序详细实现图像拖曳拖动切换位置排序功能(详细示例代码,一键复制开箱即用

微信小程序,wechat,小程序,图片排序,图像排序,九宫格拖拽排序,拖曳,拖动,拖拽,仿微信朋友圈,朋友圈宫格图片排序,微信朋友圈图片拖动排序效果,实现九宫格图片拖拽,图像拖拽排序组件插件,小程序实现拖拽图片切换图片位置,图片拖动互换位置,图像拖拽切换位置,九宫格图片组合拖动排序,交换九宫格图片的位置,小程序上传图片后,如何实现拖拽排序功能,小程序怎么实现图片拖拽排序,微信小程序图片上传,九宫格拖拽组件,选择图片并拖动_微信小程序图片拖拽,微信小程序长按拖拽排序,图像的拖拽移动,多图拖拽排序功能,实现九宫

✅ 精选推荐文章 4454

YOLOv11在视频流中的时序建模改进-(加入ConvLSTM或Transformer捕捉帧间关联)

本文提出了一种结合ConvLSTM和Transformer的改进YOLOv11算法,用于增强视频目标检测的时序建模能力。针对视频检测中运动模糊、遮挡等挑战,研究分析了ConvLSTM的局部时空特征建模和Transformer的全局注意力机制之间的互补性。通过数学公式详细阐述了ConvLSTM的门控机制和Transformer的自注意力计算原理,并提出分层融合策略:底层使用ConvLSTM处理高分辨率特征捕捉局部运动,高层应用Transformer建立全局时空关联。改进方案在YOLOv11架构中插入时序增强模

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 680

python周末吃什么_午餐不知道吃什么?用 Python 爬美团App评论选餐!

一、介绍朋友暑假实践需要美团外卖APP评论这一份数据,一开始我想,这不就抓取网页源代码再从中提取数据就可以了吗,结果发现事实并非如此,情况和之前崔大讲过的分析Ajax来抓取今日头条街拍美图类似,都是通过异步加载的方式传输数据,不同的是这次的是通过JS传输,其他的基本思路基本一致,希望那些数据能帮到她吧二、流程目标站点分析用浏览器打开美团外卖APP评论,F121.首先我们要找到我们想要的评论数据,在...

weixin_39762441的博客 206

【webrtc】openh264编码:动态配置码控参数触发IDR编码

SetRates 下发RateControlParameters 给到openh264 编码器 void SetRates(const RateControlParameters& parameters) override; LayerConfig 编码器这边的配置是layerconfig,具体到层的: std::vector<LayerConfig> configurations_; void H264EncoderImpl::SetRates(const RateCo.

突围 725

如何用Python+Open-AutoGLM实现美团定时自动订餐?(附完整源码)

掌握美团自动订餐的 Open-AutoGLM 脚本编写技巧,用Python实现定时订餐自动化。适用于上班族、程序员等群体,结合自然语言理解与任务调度,高效省时。支持自定义时间与菜品,稳定可靠,值得收藏。

DeepLens的博客 1210

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python大众点评霸王餐_划重点:如何报名大众点评霸王餐?怎么做才能中奖?

原标题:划重点:如何报名大众点评霸王餐?怎么做才能中奖? 前几年点点还是个点评小白,下载了大众点评之后也不会用,只会最简单的搜索商家,并点击查看,我相信很多人应该和我一样吧?即使点评上有团购的功能,即使它和美团是一家,即使它偶尔会推出福利活动......也还是不会选择用它。 曾经的我就是这样,当我去年年末接触了大众点评之后,我才发现早些时候的自己是多么的Stupid,没玩点评的那些年,我貌似错过了...

weixin_39771614的博客 248

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

影刀RPA行业应用:餐饮行业自动化完全指南——外卖订单同步库存自动预警会员数据分析与外卖平台比价实战

餐饮行业自动化解决方案摘要 本指南详细介绍了影刀RPA在餐饮行业中的自动化应用方案,涵盖外卖订单同步、库存预警、会员数据分析和平台比价四大核心场景。作者林焱通过12个模块系统讲解了餐饮数据模型设计、多平台API对接方法、自动化流程实现等实战内容。文章提供美团/饿了么等平台的订单同步代码示例,包含签名计算、错误处理等关键技术细节,并展示了标准化的数据结构模型。该方案可帮助餐饮企业实现全流程自动化,解决人工操作效率低、数据滞后等问题,为经营决策提供实时数据支持。所有示例均为真实可落地的实施方案,可直接应用于餐饮

RPA专家,自动化流程机器人,定制代写,指导教学。 292

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

如何用python赚钱 悟空问答-普通大学生可以做点什么兼职赚钱?

我是全知小云,一个尝试过多种兼职的大三学生。大二开始基本上就不向家里要生活费了。下面我为你汇总了自己或者朋友尝试过的兼职方法,文字有点多,希望你能读下去,我相信你一定会有所收获的。你还在醉生梦死,每天沉迷于游戏无法自拔吗?你还在茫茫无措,大四都还在向家里要生活费吗?你还在希望经济独立,却没有好的的兼职门路吗?我就按线上和线下兼职,总结各兼职的优缺点吧。线下兼职各类门店服务员,如星巴克,麦当劳,肯德...

weixin_39628256的博客 766

Python+轻量AI实现个人财务自动化记账系统

个人财务自动化是面向普通用户的低门槛数据工程实践,其核心在于将非结构化消费流水(如银行CSV、支付宝Excel)转化为可分析的标准化账目。原理上采用‘规则优先、AI兜底’的混合分类范式,利用正则匹配与关键词词典覆盖高频确定性交易,再以本地部署的小型生成式AI(如Phi-3-mini)处理模糊长尾场景,兼顾准确性、一致性与隐私安全。技术价值体现在零订阅成本、离线运行、一键部署和强容错设计,显著降低财务可见性的使用门槛。典型应用场景包括自由职业者月度收支追踪、多账户家庭记账、以及纸质小票OCR后结构化归类。本文

weixin_30562507的博客 380

AI Money Coach:基于Python规则引擎的个人财务决策辅助工具

个人财务管理本质上是结构化数据驱动的归因分析与情景推演,而非黑箱预测。其核心原理在于将收支行为转化为可计算、可验证、可反馈的量化指标,通过白盒化规则引擎实现高解释性诊断。技术价值体现在数据主权可控、逻辑全程透明、迭代门槛极低——所有建议均源自用户自定义规则与本地CSV数据的确定性计算,规避了大模型误判与隐私泄露风险。典型应用场景包括月度预算校准、浮动支出归因、应急资金测算及自由职业者现金流预测。本项目以Python+pandas+PyYAML构建轻量级命令行工具,践行‘可追溯、可质疑、可修正’的财务决策原则

sunjhgq的专栏 445

非主流start-up,值得放弃大厂offer去闯一闯吗?

FLAG 或是 FANG 仍然是大多数求职者的首选,毕竟薪资待遇、福利都是非常诱人的。而其实很多小公司或者startups并不比大公司差。在start-up你有很多机会去 take ownership,挑战技术,独挡一面,升职加薪也快,1-2年后,你可能就是这条 gai 最 senior 的仔了。 难点是,很多人其实并不了解身边的 start-up,很多发展的不错的公司,甚...

九章算法的博客 338

计算机毕业设计Django+LLM大模型美食推荐系统 菜谱食谱数据分析 大数据毕业设计(源码+LW文档+PPT+讲解)

《Django+LLM大模型美食推荐系统》开题报告摘要:本研究提出基于Django框架和LLM大模型的美食推荐系统,旨在解决传统推荐系统存在的冷启动和语义理解不足问题。系统采用LLM进行用户意图解析和语义匹配,结合协同过滤算法构建混合推荐策略,支持多轮对话交互和实时反馈优化。创新点包括语义驱动推荐、多模态融合和轻量化集成方案,预期实现推荐准确率提升20%以上。研究计划涵盖数据采集、模型开发、系统实现等阶段,最终将开发Web端原型系统并申请相关知识产权。

全网计算机/大数据辅导(自媒体)道祖第一人、全网粉丝100W+,专注于大学生项目实战开发,讲解,毕业答疑辅导,高校老师/讲师/同行合作。以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理。 782

OpenClaw开源框架:AI智能体如何重塑未来应用生态

AI智能体(AI Agent)作为人工智能领域的重要分支,通过感知、规划、执行与反思的自主循环机制,实现了从被动响应到主动服务的跨越。其核心技术原理在于大语言模型的推理能力与工具调用(Function Calling)的有机结合,使机器能够理解复杂意图并执行多步骤任务。这一技术突破将推动软件架构从紧耦合的独立应用向松耦合的API服务网格演进,其核心价值在于彻底改变人机交互范式,实现从“人适应软件”到“软件适应人”的根本转变。在应用场景上,智能体正逐步渗透到智能助手、自动化工作流及垂直领域解决方案中,最终将自

weixin_30781433的博客 375

流量运营实战:自然流量、付费流量与全域流量的协同增长策略

在数字营销领域,流量获取是业务增长的核心引擎。其基本原理是通过不同渠道触达目标用户,实现价值传递与转化。从技术价值看,高效的流量运营能显著降低获客成本并提升用户生命周期价值。在应用场景上,无论是电商、内容平台还是在线服务,都需要构建多元化的流量矩阵。本文聚焦于线上业务增长的基本盘,深入拆解自然流量、付费流量与全域流量这三大核心模块的实战玩法与协同逻辑。其中,自然流量依赖SEO优化与内容价值交换,付费流量强调精准投放与ROI控制,而全域流量则重在公私域联动与数据打通,最终实现流量的高效整合与价值最大化。

weixin_34236869的博客 426
上一篇: 重磅! 华为8月将正式发布鸿蒙,鸿蒙要比安卓原生快60%
下一篇: Php 凉了 ,CTO 突然离职,开源 PHP 官方团队解散!
DevolperFront
博客等级 码龄8年 465粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值