Python — 爬取饿了么外卖店信息
生活随笔
收集整理的這篇文章主要介紹了
Python — 爬取饿了么外卖店信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在學數據可視化,缺少點數據進行實操,就想著從餓了么上面爬點外賣店信息。
主要是獲取數據,所以代碼比較簡陋,直接上代碼:
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=['名稱', '月銷售量','配送費', '起送價', '風味','評分', '配送時長', '評分統計', '距離', '地址'])writer.writeheader()for item in re.get('items'):info = dict()restaurant = item.get('restaurant')info['地址'] = restaurant.get('address')info['配送費'] = restaurant.get('float_delivery_fee')info['名稱'] = restaurant.get('name')info['配送時長'] = restaurant.get('order_lead_time')info['距離'] = restaurant.get('distance')info['起送價'] = restaurant.get('float_minimum_order_amount')info['評分'] = restaurant.get('rating')info['月銷售量'] = restaurant.get('recent_order_num')info['評分統計'] = restaurant.get('rating_count')info['風味'] = restaurant.get('flavors')[0].get('name')writer.writerow(info) # print(info)if re.get('has_next') == True:crawler_page(page+1)crawler_ele(0)在這里簡單注釋幾句:
- url 中的經緯度去掉了,可以自行查詢添加需要爬取地點的經緯度,也可以通過調用地圖api獲取經緯度;
- headers 需要加 Cookies ,不然會有登錄權限限制爬取頁數;
- 最后調用的是遞歸不是循環,所以保存結果的 csv 文件里面會有多個重復表頭,可以用 Excel 打開刪除重復值就可以了。
ps:開得最多賣的最好的還是快餐店。。。
總結
以上是生活随笔為你收集整理的Python — 爬取饿了么外卖店信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu下android虚拟机(em
- 下一篇: tcpreplay 回放报文