作者:刘早起早起

     来源:早起python

在之前的文章Python告诉你想开一家美食店该怎么做该怎么做中,我们爬取了美团网美食栏目下相关商家数据进行了分析,那么本文就具体讲解怎样从美团网获取我们需要的数据,我在爬取数据过程中又经历了哪些坑

在一开始还是选择去一些技术网站看看有没有思路可以借鉴,根据搜索结果我将相关帖子分为两类,一类是已失效的代码,另一类是吐槽为什么美团的反爬机制这么变态。所以自己想办法解决。还是先打开目标页面看一下

通过切换区域可以发现页面的内容是通过Ajax异步请求技术得到的,简单来说就是能够实现在后台与服务器交换数据,在不重新加载页面的情况下更新网页。所以打开浏览器F12,进入开发者工具,选择Network,刷新页面,选择XHR(XmlHttpRequest)就可以选出Ajax的请求包

通过check preview的内容很轻松的就能从几个数据包中找到我们需要的那一个,再看下headers信息找到Requests URL

我们先打开一下这个URL试试????

OK返回的是一个json数据,心中暗喜,这不是搞定了吗,再定睛一看

这除了给了一个店铺名和地址还有评分就完了,就这点信息拿什么去分析,回想了一下刚刚查阅的一些其他大神曾经写的代码明明还有优惠券等信息,于是翻回之前的相关文档,通过对比发现只要在URL中添加userID就能返回更多的店铺信息

心中再次暗喜,虽然这只是一页的数据,我再写个循环多取几页不就能取一些数量的数据用于分析了吗,所以抓紧操作起来

url_list = []
for _ in range(1,31):url = 'https://hz.meituan.com/meishi/api/poi/getPoiList?cityName=%E6%9D%AD%E5%B7%9E&cateId=0&areaId=0&sort=&dinnerCountAttrId=&page=' + str(_) + '替换为你F12之后URL中page参数后对应的字符'url_list.append(url)

OK,这样一操作之后30页的URL就有了,再用requests去请求数据不就完事了,先测试一下

headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36","Host": "hz.meituan.com",
"Referer": "https://hz.meituan.com/meishi/",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin"}data = requests.get(url,headers = headers).json()

和我们预想的结果一样,那么接下来写个循环去取30页数据并保存不就收工了

但是自己还是太年轻,程序没有跑几秒就直接异常了,也设置了请求频率怎么还是挂了,没事我们先看下怎么回事,浏览器打开刚刚的API试试

哦吼,这是API直接整挂了吗?难道是更换地址了?再从首页进美食栏目试一下

再定睛一看,这还是美团还单独做了一个页面。不管怎么访问美团都是返回error403

不要慌,我们设置一下代理IP,再换个UA,伪装一下再去请求,可是在换了数个代理IP之后,并且不管是用代码还是用浏览器正常请求返回的永远是

没事requests 请求不行,我用selenium试试,还是不行,再换手机试试,结果还是一样无法访问,现在开始慌了,难道一行代码就把美团服务器干趴了

再经过几个设备测试,可以确定只是我的电脑被美团ban掉了,可是怎么连我的手机也不行,难道是因为同一个Wi-Fi还是登陆了同一个账号

那最后是怎么解决的,三个字:慢慢来

◆ ◆ ◆  ◆ ◆长按二维码关注我们
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。管理员二维码:猜你喜欢
● 笑死人不偿命的知乎沙雕问题排行榜● 用Python扒出B站那些“惊为天人”的阿婆主!● 全球股市跳水大战,谁最坑爹!● 上万条数据撕开微博热搜的真相!● 你相信逛B站也能学编程吗?

一次爬美团网美食团购的经历相关推荐

  1. 美团--测试创建团购订单

    题目: 美团有一个API用于创建团购订单,地址如下 https://open.meituan.com/order/createorder?token=1234567890abcdefghijklmno ...

  2. 美团分销联盟接口SDK(支持美团外卖,团购等业务CPA/CPS订单拉取和活动取链)

  3. 美团网CEO王兴:创业十年屡败屡战 终成硕果

    王兴已经"英勇地死去"两次了,他先后创办了校内和饭否,但都令人瞩目地失败了;"哪有什么错过的机会,那本就不是你的机会.既往不恋,当下不杂,未来不迎". 直到最近 ...

  4. 为何美团、抖音都潜入社群团购?毫无疑问社群团购是大趋势。

    为何美团.抖音都潜入社群团购?毫无疑问社群团购是大趋势. 社群团购.社群团购覆盖面广.高增长.轻创业.受资本青睐,解决短期痛点,符合长期发展,是实实在在卖货到终端消费者的商业模式,,是实体结合线上的一 ...

  5. 曾经红火的饭统网关闭调查:欲出售未果 团购引发业务冲突

    做餐饮预订十年之久的饭统网最近倒下了. 从4月初到现在,饭统网出现官网无法打开.400电话无人接听的状况.在腾讯科技的实际探访中,原先位于西直门办公地大门紧闭已经搬离到安定路.新的办公新址,同样是大门 ...

  6. 美团2020年全年财务报告:疫情期间网络营销之下的美团选择进军社区团购

    美团于3月26日公布了2020年第四季度以及全年财务报告,作为与饿了么齐名的外卖平台,现如今美团服务涵盖餐饮.外卖.生鲜零售.打车.共享单车以及休闲娱乐等多种类业务,全面覆盖全国2800个县市区.在众 ...

  7. 我在赶集网的两个月(数据挖掘、竞情分析、产品、团购、运营、电话销售)

    引子: 很好的一个流水帐,很好的一个实习生案例,很好的一个职场现身说法,很好的用数据说话的实战例子,很好的鲶鱼!请仔细阅读,尤其是你们中刚刚踏入职场没几年的年轻人,看看一个大三的北邮学生是怎么震了赶集 ...

  8. 美团拼多多挑起社区团购新战事,谁能“见血封喉”?

    美团也要攻入下沉市场了! 11月12日上午11点,美团团节社在西安开城.仅仅12小时,入驻的商家之一华莱士汉堡销量就近3万单,其销售额高达80万元.原价76元.现价27元的华莱士双人豪华套餐.原价80 ...

  9. 为什么说社区团购是美团必须要拿下的市场?

    美团又有新动作. 日前有媒体报道,美团内部已将"社区团购"业务定为一级战略项目,欲将其发展为继餐饮外卖.到店及酒旅两大主体业务之后的又一主体业务. 01 美团优选人事架构调整背后, ...

最新文章

  1. 软件定义网络 对我们有多重要?
  2. 下午花一小时整理的JVM运行时方法区
  3. Xamarin XAML语言教程使用方法设置进度条进度
  4. 读《大话设计模式》有感
  5. 'Lock wait timeout exceeded; try restarting transaction'问题
  6. asp.net中提交表单数据时提示从客户端(。。。)中检测到有潜在危险的 Request.Form 值...
  7. P5127-子异和【线段树,树链剖分,位运算】
  8. 怎么用计算机打分数,电脑excel中分数怎么打出来(图解excel分数输入法)
  9. 矩阵每一行重复_【剑指offer】65 矩阵中的路径
  10. PHP header发送各种类型文件下载
  11. 可以种树吗_基本农田能干什么?种树?建房?搞种养殖?哪种可以?
  12. C# 连接 SQL Server 数据库,出现异常:provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接...
  13. navicat和 plsql 连接oracle数据库 总结
  14. java语言编程之FileWriter
  15. Python 预测基因变异是否具有相互冲突的临床分类问题
  16. pd.concat实现数据合并
  17. MyBatis实现级联查询及逆向生成
  18. js html body onload,动态添加页面body OnLoad事件的简单js代码
  19. 在 WPF 中使用 Prism DryIOC 加载应用程序时导航到默认视图
  20. CART与ID3的区别C4.5离散化的过程

热门文章

  1. 见证2008,盘点2008
  2. hbase hive java_hive 与 hbase 结合
  3. golang 消息忽略 signal.Ignore(syscall.SIGHUP) 示例
  4. 第一章 动态规划 背包问题之01背包问题
  5. 一文读懂容器存储接口 CSI
  6. InsecureRequestWarning: Unverified HTTPS request is being made to host ‘api.ai.qq.com‘. Adding
  7. 项目现场的疑难杂症之攻略
  8. 自考计算机专业的难度,自学考试计算机这种高难度专业如何提升通过的机会
  9. taro react 微信小程序中使用echarts
  10. html显示年月日分钟,html页面显示年月日时分秒和星期几的两种方式