Получить данные из "https://realtruck.com/p/rugged-ridge-floor-mats/" с помощью Python Scrapy - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь получить данные из "https://realtruck.com/p/rugged-ridge-floor-mats/", но проблема в том, что они меняют макет. Теперь я пытаюсь получить список DropDown.

enter image description here

проблема: список может быть гибким, может быть 5 списков за раз, 10 списков, которые мы не знаем. Поэтому я хочу использовать гибкий цикл в соответствии с выпадающим списком.

Вот мой предыдущий код: Это статическийкод хочу его как динамику

 for year in years: 
      yield ... 
      make_arr  

      for make in make_arr:     
         yield ...      
         models_arr     

         for model in models_arr:           
           yield ...            
           body_arr 
            for body in body_arr:       
                yield ...
                colors_arr                  
                for color in colors_arr:    
                    yield ...

1 Ответ

0 голосов
/ 03 марта 2019

Списки являются динамическими (за исключением лет), и их данные заполняются с помощью вызова XHR.

HTTP POST https://uwp.thiecommerce.com/uwp-v3/rt/ordercontrols/rugged-ridge-floor-mats

Полезная нагрузка поста включает ваш предыдущий выбор пользователя.Пример

{"year":2018,"makeSlug":"chevy"}

Таким образом, вам нужно выполнить цикл по годам и начать вызывать вызовы XHR.Внутри этого цикла вам нужно вложить больше циклов для каждой подкатегории.

что-то вроде:

for years in [2017,2018] # more years goes here
    #get the year Make list
    for make in makes:
        #get the make Model list
        for model in models:
            # get the model body list
            for body in bodies:
                #  call https://uwp.thiecommerce.com/uwp-v3/rt/recs/similar/? 
                        makeSlug=chevy&modelSlug=silverado- 
                        1500&year=2017&bodySlug=crew-cab&productLineSlug=rugged- 
                        ridge-floor-mats
                # and you will have the data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...