欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

程序员文章站 2022-03-26 15:02:49
先看一下抓取的截图,竟然有这么多店没有营业执照。 二、运行环境 python3 pymongo requests python3 pymongo requests 三、分析 首先访问饿了么主页,输入想搜寻的区域,页面随即返回附近区域店铺。 页面浏览器地址如下: https://www.ele.me/ ......

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

先看一下抓取的截图,竟然有这么多店没有营业执照。

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

二、运行环境

  • python3

  • pymongo

  • requests

三、分析

首先访问饿了么主页,输入想搜寻的区域,页面随即返回附近区域店铺。

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

页面浏览器地址如下:

https://www.ele.me/place/wtw39y8614v4?latitude=31.237236&longitude=121.36636

打开浏览器开发者工具,分析需要抓取的数据,接着用requests抓取该页面地址,使用BeautifulSoup解析数据,竟然返回空值数据。

再次查看页面信息,向下滚动页面,发现XHR异步加载类型中有返回JSON格式数据。如下图所示:

作者:麦口胡

链接:https://www.jianshu.com/p/19c38bfa7388

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

其中参数:

1、longitude,latitude采用的高德坐标系对应搜索区域的经纬度

2、limit=24 每次限制返回上限24个店铺;设置再多后台最多返回30个

3、offset=24 每次返回的店铺数量,24个数量级增加,比如页面继续往下翻offset=48,72……

用循环增加offset的偏移量,就可以得到更多的店铺数据。

此页面我们需要采集name ,phone, address 即商户名称,电话,营业地址三个数据即可。一个页面可以采集24个商家数据,json数据如下图:

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

代码如下:

import requestsimport jsonurl='https://www.ele.me/restapi/shopping/restaurants?extras[]=activities&geohash=wtw39y8614v4&latitude=31.237236&limit=24&longitude=121.36636&offset=24&terminal=web'r=requests.get(url).textd=json.loads(r)for v in d: print (v['name'],v['phone'],v['address'])

返回结果如下:

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

四、代码截图

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

五、结果显示

在mongodb中按照地址排序,sort({address:1}) 按照地址升序排序

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

饿了吗上面原来有这么多无证店铺!还是大Python比较牛逼!

你学会了吗?

欢迎大家关注我的博客:ttps://home.cnblogs.com/u/Python1234

欢迎加入千人交流答疑群:125240963