Heim >Backend-Entwicklung >Python-Tutorial >Python-Crawls, hast du Hunger?

Python-Crawls, hast du Hunger?

步履不停
步履不停Original
2019-07-01 13:31:495273Durchsuche

Python-Crawls, hast du Hunger?

Ich lerne die Datenvisualisierung und mir fehlen einige Daten für den praktischen Betrieb, deshalb möchte ich einige Informationen zum Imbissladen von Ele.me crawlen.

Hauptsächlich zum Abrufen von Daten, daher ist der Code relativ einfach. Gehen Sie einfach zum Code:

import requests
import json
import csv
def 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 re
re = 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)

Ein paar einfache Kommentare hier:

Der Längen- und Breitengrad in der URL Wurden entfernt, können Sie es selbst abfragen. Fügen Sie den Breiten- und Längengrad des zu crawlenden Ortes hinzu, oder Sie können den Breiten- und Längengrad durch Aufrufen der Karten-API erhalten Die Berechtigung begrenzt die Anzahl der gecrawlten Seiten.

Der letzte Aufruf ist rekursiv. Es handelt sich nicht um eine Schleife, daher enthält die CSV-Datei, die die Ergebnisse speichert, mehrere doppelte Header die doppelten Werte.

Empfohlene verwandte Tutorials:

Python-Video-Tutorial

Das obige ist der detaillierte Inhalt vonPython-Crawls, hast du Hunger?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn