Python — 爬取饿了么外卖店信息
生活随笔
收集整理的這篇文章主要介紹了
Python — 爬取饿了么外卖店信息
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在學(xué)數(shù)據(jù)可視化,缺少點(diǎn)數(shù)據(jù)進(jìn)行實(shí)操,就想著從餓了么上面爬點(diǎn)外賣店信息。
主要是獲取數(shù)據(jù),所以代碼比較簡(jiǎn)陋,直接上代碼:
import requests import json import csvdef crawler_ele(page=0):def get_page(page):url = 'https://h5.ele.me/restapi/shopping/v3/restaurants?latitude=xxxx&longitude=xxxx&offset={page}&limit=8&terminal=h5'.format(page=page*8)headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36",'cookie': r'xxxx'}re = json.loads(requests.get(url,headers=headers).text)return rere = get_page(page)if re.get('items'):with open('data.csv','a',newline='') as f:writer = csv.DictWriter(f,fieldnames=['名稱', '月銷售量','配送費(fèi)', '起送價(jià)', '風(fēng)味','評(píng)分', '配送時(shí)長(zhǎng)', '評(píng)分統(tǒng)計(jì)', '距離', '地址'])writer.writeheader()for item in re.get('items'):info = dict()restaurant = item.get('restaurant')info['地址'] = restaurant.get('address')info['配送費(fèi)'] = restaurant.get('float_delivery_fee')info['名稱'] = restaurant.get('name')info['配送時(shí)長(zhǎng)'] = restaurant.get('order_lead_time')info['距離'] = restaurant.get('distance')info['起送價(jià)'] = restaurant.get('float_minimum_order_amount')info['評(píng)分'] = restaurant.get('rating')info['月銷售量'] = restaurant.get('recent_order_num')info['評(píng)分統(tǒng)計(jì)'] = restaurant.get('rating_count')info['風(fēng)味'] = restaurant.get('flavors')[0].get('name')writer.writerow(info) # print(info)if re.get('has_next') == True:crawler_page(page+1)crawler_ele(0)在這里簡(jiǎn)單注釋幾句:
- url 中的經(jīng)緯度去掉了,可以自行查詢添加需要爬取地點(diǎn)的經(jīng)緯度,也可以通過(guò)調(diào)用地圖api獲取經(jīng)緯度;
- headers 需要加 Cookies ,不然會(huì)有登錄權(quán)限限制爬取頁(yè)數(shù);
- 最后調(diào)用的是遞歸不是循環(huán),所以保存結(jié)果的 csv 文件里面會(huì)有多個(gè)重復(fù)表頭,可以用 Excel 打開(kāi)刪除重復(fù)值就可以了。
ps:開(kāi)得最多賣的最好的還是快餐店。。。
總結(jié)
以上是生活随笔為你收集整理的Python — 爬取饿了么外卖店信息的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ubuntu下android虚拟机(em
- 下一篇: 银行营销数据分析---Python(nu