Advertisement
dark-s0ul

vehicleapi

Apr 28th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.55 KB | None | 0 0
  1. import requests
  2. from time import sleep
  3.  
  4. url = "http://www.superchips.co.uk/api/vehicleapi.php/"
  5.  
  6.  
  7. def get_makes():
  8.     while True:
  9.         try:
  10.             return requests.get(url + "makes?key=simontest", timeout=10)
  11.         except Exception as e:
  12.             print('makes: Try again after 10 seconds: ' + str(e))
  13.             sleep(10)
  14.  
  15.  
  16. def get_fuels(_make):
  17.     while True:
  18.         try:
  19.             return requests.get(url + _make + "/fuel?key=simontest", timeout=10)
  20.         except Exception as e:
  21.             print("fuels: " + _make + ': Try again after 10 seconds: ' + str(e))
  22.             sleep(10)
  23.  
  24.  
  25. def get_models(_make, _fuel):
  26.     while True:
  27.         try:
  28.             return requests.get(url + _make + "/" + _fuel + "?key=simontest", timeout=10)
  29.         except Exception as e:
  30.             print('models: ' + _make + ": " + _fuel + ': Try again after 10 seconds: ' + str(e))
  31.             sleep(10)
  32.  
  33.  
  34. def get_variants(_fuel, _model):
  35.     global tries
  36.     while True:
  37.         try:
  38.             return requests.get(url + _fuel + "/" + str(_model) + "?key=simontest", timeout=10)
  39.         except Exception as e:
  40.             print('variants: ' + _fuel + ": " + str(_model) + ': Try again after 10 seconds: ' + str(e))
  41.             sleep(10)
  42.  
  43.  
  44. def get_details(_variant):
  45.     while True:
  46.         try:
  47.             return requests.get(url + "variant/" + str(_variant) + "?key=simontest", timeout=10)
  48.         except Exception as e:
  49.             print('details: ' + str(_variant) + ': Try again after 10 seconds: ' + str(e))
  50.             sleep(10)
  51.  
  52.  
  53. if __name__ == '__main__':
  54.     file = open("auto.csv", "w")
  55.  
  56.     try:
  57.         makes = get_makes().json()["makes"]
  58.         for make in makes:
  59.             fuels = get_fuels(make["name"]).json()["fuel_types"]
  60.             for fuel in fuels:
  61.                 models = get_models(make["name"], fuel["name"]).json()["models"]
  62.                 for model in models:
  63.                     variants = get_variants(fuel["name"], model["id"]).json()["variants"] if "id" in model else []
  64.                     for variant in variants:
  65.                         vehicle_info_json = get_details(variant["id"]).json()
  66.  
  67.                         if "vehicle_info" in vehicle_info_json:
  68.                             vehicle_info = vehicle_info_json["vehicle_info"]
  69.  
  70.                             original_bhp = vehicle_info["original_bhp"]
  71.                             original_nm = vehicle_info["original_nm"]
  72.                             modified_bhp = vehicle_info["modified_bhp"]
  73.                             modified_nm = vehicle_info["modified_nm"]
  74.  
  75.                             total_bhp = ""
  76.                             try:
  77.                                 total_bhp = str(int(original_bhp) + int(modified_bhp))
  78.                             except:
  79.                                 total_bhp = original_bhp
  80.  
  81.                             total_nm = ""
  82.                             try:
  83.                                 total_nm = str(int(original_nm) + int(modified_nm))
  84.                             except:
  85.                                 total_nm = original_nm
  86.  
  87.                             powercurve_url = vehicle_info["powercurve_url"] if "powercurve_url" in vehicle_info else ""
  88.  
  89.                             value = make["name"] + ";" + fuel["name"] + ";" + model["name"] + ";" + variant["variant"] + ";" + str(vehicle_info["workshop_price"]) + ";" + original_bhp + ";" + original_nm + ";" + total_bhp + ";" + total_nm + ";" + powercurve_url
  90.                             file.write(str(value) + "\n")
  91.                             print(value)
  92.                         else:
  93.                             value = make["name"] + ";" + fuel["name"] + ";" + model["name"] + ";" + variant["variant"] + ";;;;;;"
  94.                             file.write(str(value) + "\n")
  95.                             print(value)
  96.                     else:
  97.                         if variants == []:
  98.                             value = make["name"] + ";" + fuel["name"] + ";" + model["name"] + ";;;;;;;"
  99.                             file.write(str(value) + "\n")
  100.                             print(value)
  101.                 else:
  102.                     if models == []:
  103.                         value = make["name"] + ";" + fuel["name"] + ";;;;;;;;"
  104.                         file.write(str(value) + "\n")
  105.                         print(value)
  106.             else:
  107.                 if fuels == []:
  108.                     value = make["name"] + ";;;;;;;;;"
  109.                     file.write(str(value) + "\n")
  110.                     print(value)
  111.     except:
  112.         pass
  113.  
  114.     file.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement