scrapy爬虫爬取美团美食商家信息

作者: L同学_ | 来源:发表于2017-10-06 21:13 被阅读1327次

本文主要思路是根据手机定位信息周边美食进行爬取:

爬取目标:微信小程序中的美团生活

1、首先需要获取广州市地图边界。

1)获取地图边界主要是依赖高德地图api接口,需要自行申请key

介绍地址:http://lbs.amap.com/api/webservice/guide/api/district/

2)使用matplotlib进行绘制结果如图,测试没问题:


2、构造外包矩形,对外包矩形进行等距划分。

1)美团定位显示3km内的商家,所以任意相邻的两个点之间的距离应该小于6km,其实就是一个正方形对角线的距离必须小于或等于6,即  2x^2=36,解得x=4.24264

2)因为纬度1°为111.3195km,经度每度为111.3195cos(纬度),根据经纬度最大和最小点按照4.24264km的距离进行遍历,得到以下所有点(900个)

3、筛选出落在广州市内的坐标,并将坐标信息发送到spider

1)原本是打算写个射线法进行筛选坐标的,后面想起好像有类似的轮子,于是使用了shapely进行坐标筛选出401个符合要求的点,感谢造轮子的大神

2)将以上功能定义成函数式,并在spider中改写start_requests,将坐标遍历


4、对所有符合要求的坐标信息进行遍历爬取,主要是获取商家的poiid


5、根据卖家的poiid,对美团app的商家信息进行爬取,包含坐标信息


6、数据入库

最后抓取了6378条商家信息


7、注意事项

1)数据库插入报错: Traceback:: (1241, 'Operand should contain 1 column(s)')

         输出数据中的坐标为tuple格式,改成str解决

2)因为坐标为经纬度,有6位小数点,浮点型计算不太熟悉,所以开始处理的时候转换成了int

3)美团接口获取主要是使用Fiddler

8、数据展示

1)人均消费最高的商家,香格里拉大酒店占了4个

2)最受欢迎的前十商家,你去过几家?

3)商家人均价格分布,多少钱才符合大众消费?

4)根据坐标绘制的散点图,哪里开店最受欢迎?

5)词频统计,广州什么美食店最多?

github地址:https://github.com/GuoBinxs/MeituanSpider  欢迎start

相关文章

网友评论

  • df2608a5f778:这不会触发美团美食的验证码吗?
  • 初级炼药师:你好,请问你获取到polyline点集以后,是怎么通过matplotlib画到广州市行政区域的线状图的,我下载了你的源码看,看不到这一段,可不可以告诉我怎么画的
  • c9df08d81d8d:请问博主这个爬虫可以爬取除美食以外的商家信息吗??
    L同学_:@c9df08d81d8d 类似的,应该可以
    c9df08d81d8d:@L同学_ 例如休闲娱乐、生活服务这些分类中的店家信息
    L同学_:例如?
  • d79b74814c6e:不能给你发私信,我qq2832430642,想付费解决点问题,就是你现在这个
    L同学_:@Mayday_31ed 已加,希望能帮上你的忙
  • d79b74814c6e:这个写的太好了,应该怎么感谢你呢
    L同学_:@Mayday_31ed 多谢夸奖,�点赞就是很好的感谢了~
  • e6413cca205a:博主请问下用matplotlib 绘图都用了那些模块?
    e6413cca205a:@L同学_ 好的,谢谢
    L同学_:@z1104476617 你好,用的是matplotlib里基本的plot方法
  • 56bdeb8e3cc4:有个问题想请教,抓包的时候用的app访问的么?其实主要就是找出spider url把,你这个应该是手机版本的美团,手机版本的貌似反扒没那么严格,还有种方法就是通过pc端的美团吧,这个抓取的方法就不一样了吧,反扒也比较严,目前只是了解过pc端美团爬取,没真正动手
    f58f6f9507a6:是的 主要这个地图的思路很亮,解决了很大问题
    L同学_:@Henrrychans 这个是微信小程序的,主要获取接口,其他的难度没试呢,这个主要是地图遍历思路棒,爬取流程比较普通~
  • 56bdeb8e3cc4:不错啊,应该是配合ip代理池和高德api使用的,我现在在爬了
    L同学_:@Henrrychans 😏
  • 7a0350505737:请教下程序里的几个疑问
    1、for item in items['poiList']['20639']里的20639是怎么来的?
    2、'https://i.meituan.com/brunch/applet/index?&tag=food&page=0&firstTime=0&lat={1}&lng={0}'这个页面是怎么找到的?怎么发现的
    盼复
    L同学_:你好~我在7-3)有说明用Fiddler抓包,或者Charles也可以,具体步骤没写出来(因为懒:flushed: ),你可以看看关于这方面的文章,1中的数字是返回的response中的,和2中的url是抓包来的
  • HONGQUAN:感谢分享,python进阶正好可用:yum:
    L同学_:@HONGQUAN :blush:
  • 9fdcf0a79eac:看了博主的全部文章,很给力~赞一个
    L同学_: @ffted 感谢支持!

本文标题:scrapy爬虫爬取美团美食商家信息

本文链接:https://www.haomeiwen.com/subject/emtryxtx.html