Судя по всему, вам даже не нужно использовать соскоб (beautifulsoup), поскольку он просто использует JSON API от конечной точки https://www.automotivebulbfinder.com/philips/functions/ajax.php
. В зависимости от параметров URL, которые вы передаете этому URL, он возвращает список лет, модели и подмодели, которые различаются key
параметром
Например:
et c ...
Приведенный ниже код получает каждый из этих списков с соответствующим годом, моделью и подмоделью на основе ввода пользователя:
import requests
import json
url = "https://www.automotivebulbfinder.com/philips/functions/ajax.php"
def get_items(itemName, params):
r = requests.get(url, params = params)
data = json.loads(r.text)
if (data.get("data")): return (None, data["data"])
items = json.loads(r.text)["items"].keys()
for val in items: print(val)
return (input("Enter a " + itemName + " : "), None)
year, data = get_items("year", { "key": "yearSelect"})
make, data = get_items("make", { "key": "makeSelect", "year": year})
model, data = get_items("model", { "key": "modelSelect", "year": year, "make": make})
if data:
print(data)
exit(0)
qualifier, data = get_items("submodel", { "key": "submodelSelect", "year": year, "make": make, "model": model})
r = requests.get(url, params = {
"key": "selectVehicle",
"year": year,
"make": make,
"model": model,
"qualifier": qualifier
})
print(json.loads(r.text)["data"])
Пример ввода:
[list of year]
Enter a year : 2019
[list of make]
Enter a make : Jeep
Cherokee
Enter a model : Cherokee
(w/halogen capsule headlamps)
(w/HID headlamps)
Enter a submodel : (w/HID headlamps)
{ all your data here}