Skip to content

Commit dd8b7ad

Browse files
author
=
committed
260113 - web crawling (리팩터링 - manufacture, models, gen_num )
1 parent 5dbb528 commit dd8b7ad

1 file changed

Lines changed: 6 additions & 81 deletions

File tree

src/yoshiparts.py

Lines changed: 6 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -16,103 +16,28 @@ def response_html(self, site = None, header = None):
1616
path_data = []
1717
uid = []
1818
products_data = []
19+
gen_number = []
1920
vehicle_info = None
21+
url_model = {}
2022

2123
#payloads
2224
data = {"filter" : {} }
2325
data2 = {"vin2" :None}
2426

2527
try:
26-
# get vehicle manufacturer infos (already prepared)
2728
for brand in self.general:
2829
model_name_url = target_url + "/models/" + brand
2930
response = requests.get(model_name_url)
3031
response.raise_for_status()
3132
json_data = json.loads(response.content)
32-
3333
model = json_data["models"]
34-
# get vehicle model name
3534
for i in model:
36-
manufacturer.append(i["manufacturer"]['slug'])
3735
model_name.append(i["path"])
38-
# vehicle_info = {"manufacturer" : i["manufacturer"]['slug'] , "model_name" : model_name}
39-
if i["generationCount"] == 1:
40-
model_name.remove(i["path"])
41-
url_model = {"brand" : brand, "models": model_name}
42-
# print(f"brand = {brand}, model_name = {model_name}")
43-
44-
# # get vehicle generation infos
45-
for m in url_model["models"]:
46-
generation_select_url = target_url + "generations"+ url_model["brand"] + "/" + m
47-
response = requests.get(generation_select_url)
48-
response.raise_for_status()
49-
json_data = json.loads(response.content)
50-
generations = json_data["generations"]
51-
for i in generations:
52-
generation_data.append(i["key"])
53-
# print(generation_data)
54-
url_model.update({"generation" : generation_data})
55-
# print(url_model)
56-
# === TBD ===
57-
# dictionary of vehicle info => {manufactor {model_name{generation_data{ass'y{part}}}}}
58-
# vehicle_info.update({"generations": generation_data})
59-
# print(vehicle_info)
60-
# ===========
61-
62-
# ====== for DEBUG =====
63-
# generation_filter_url = "https://api.yoshiparts.com/variant-filters-3d/car/toyota/4runner/4runner-gen_4"
64-
for generation in url_model["generation"]:
65-
generation_filter_url = target_url + "variant-filters-3d" + url_model["brand"] + m + "/" + generation
66-
response = requests.post(generation_filter_url, data=data)
67-
response.raise_for_status()
68-
json_data = json.loads(response.content)
69-
variants = json_data['variants']
70-
# print(len(json_data['variants']))
71-
for i in range(len(variants)):
72-
path_data.append(variants[i]['path'])
73-
print(path_data)
74-
# =======================
75-
76-
# print(path_data)
77-
# get uid
78-
for path in path_data:
79-
diagram_url = target_url + "diagrams-new" + url_model["brand"] + "/" + path
80-
response = requests.post(diagram_url, data=data)
81-
response.raise_for_status()
82-
json_data = json.loads(response.content)
83-
diagrams = json_data["diagrams"]
84-
# print(json_data["diagrams"]["uid"])
85-
for i in range(len(diagrams)):
86-
for j in range(len(diagrams[i])):
87-
uid.append(diagrams[i][j]["uid"])
88-
print(uid)
89-
# ==================FOR DEBUG ==================
90-
# # response = requests.post("https://api.yoshiparts.com/part-list/car/toyota/4runner/grn280-grn280l_gkagk-gr-1grfe-atm-5fc-lhd/1314261_0", data=data2)
91-
# response.raise_for_status()
92-
# json_data = json.loads(response.content)
93-
# products = json_data["products"]
94-
# # diagram = json_data["diagram"]
95-
# print(diagram["baseName"])
96-
# for i in range(len(products)):
97-
# products_data.append({"baseName" : diagram["baseName"], "parts" : {"part_name" : products[i]["name"] , "weight" : products[i]["weight"]}})
98-
# ============================================== #
99-
100-
# load assembly lists
101-
for u in uid:
102-
product_url = target_url + "part-list" + self.general + "/4runner" + "/grn280-grn280l_gkagk-gr-1grfe-atm-5fc-lhd" + "/" + u
103-
response = requests.post(product_url, data=data2)
104-
response.raise_for_status()
105-
json_data = json.loads(response.content)
106-
products = json_data["products"]
107-
basename = json_data["diagram"]["baseName"]
108-
#load product infos
109-
for i in range(len(products)):
110-
products_data.append({"baseName" : basename, "parts" : {"part_name" : products[i]["name"] , "weight" : products[i]["weight"]}})
111-
# print(i)
112-
print(products_data)
36+
gen_number.append(i['generationCount'])
37+
url_model.update({"manufacturer" : brand, "models" : model_name, "gen_num": gen_number})
38+
39+
print(url_model["gen_num"])
11340
model_name.clear()
114-
generation_data.clear()
115-
path_data.clear()
11641
return products_data
11742

11843
except requests.exceptions.RequestException as e:

0 commit comments

Comments
 (0)