介绍
小编给大家分享一下python爬取饿了么的实例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
在学数据可视化,缺少点数据进行实操,就想着从饿了么上面爬点外卖店信息。
主要是获取数据,所以代码比较简陋,直接上代码:
导入请求 进口json 导入csv def crawler_ele(=0页): def get_page(页面): url=& # 39; https://h6.ele.me/restapi/shopping/v3/restaurants?latitude=xxxx&经度=xxxx&抵消={页面},限制=8,终端=代替# 39;.format(页面=* 8) 头={ “user-agent":“Mozilla/5.0 (Windows NT 10.0;Win64;x64) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/71.0.3578.80 Safari 537.36“, & # 39;饼干# 39;:" # 39;xxxx # 39; } re=json.loads (requests.get (url,头=标题)。text) 返回重新 re=get_page(页面) 如果re.get(& # 39;项目# 39;): 张开(& # 39;data.csv& # 39;, & # 39;一个# 39;,换行符=& # 39;& # 39;)f: 作家=csv.DictWriter (f,字段名=[& # 39;名称& # 39;,& # 39;月销售量& # 39;,& # 39;配送费& # 39;,& # 39;起送价& # 39;,& # 39;风味& # 39;,& # 39;评分& # 39;,& # 39;配送时长& # 39;,& # 39;评分统计& # 39;,& # 39;距离& # 39;,& # 39;地址& # 39;]) writer.writeheader () 项目在re.get(& # 39;项目# 39;): 信息=dict类型() 餐厅=item.get(& # 39;餐厅# 39;) 信息(& # 39;地址& # 39;]=restaurant.get(& # 39;地址# 39;) 信息(& # 39;配送费& # 39;]=restaurant.get (& # 39; float_delivery_fee& # 39;) 信息(& # 39;名称& # 39;]=restaurant.get(& # 39;名字# 39;) 信息(& # 39;配送时长& # 39;]=restaurant.get (& # 39; order_lead_time& # 39;) 信息(& # 39;距离& # 39;]=restaurant.get(& # 39;距离# 39;) 信息(& # 39;起送价& # 39;]=restaurant.get (& # 39; float_minimum_order_amount& # 39;) 信息(& # 39;评分& # 39;]=restaurant.get(& # 39;评级# 39;) 信息(& # 39;月销售量& # 39;]=restaurant.get (& # 39; recent_order_num& # 39;) 信息(& # 39;评分统计& # 39;]=restaurant.get (& # 39; rating_count& # 39;) 信息(& # 39;风味& # 39;]=restaurant.get(& # 39;口味# 39;)[0]. get(& # 39;名字# 39;) writer.writerow(信息) #打印(信息) 如果re.get (& # 39; has_next& # 39;)==True: crawler_page(+ 1页) crawler_ele (0)
在这里简单注释几句:
url中的经纬度去掉了,可以自行查询添加需要爬取地点的经纬度,也可以通过调用地图api获取经纬度;
头需要加饼干,不然会有登录权限限制爬取页数;
最后调用的是递归不是循环,所以保存结果的csv文件里面会有多个重复表头,可以用Excel打开删除重复值就可以了。
以上是python爬取饿了么的实例的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!