@Bjornie
Изучаю Python

Как парсить многоуровневые формы?

Имеется трехуровневая форма, типа:
--- Select1:
  option_1
  option_2
  option_...
  option_50
--- Select2:
  option_1
  option_2
  option_...
  option_35
--- Select3:
  option_a
  option_b
  option_...
  option_z


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

Вопрос: как работать с такими формами? Например: если комбинаций будет 1000. Как мне пройтись по им всем?

Добавлю, что все формы подгружаются ajax, а страницы результатов генерируются системой, т.е. я не могу подобрать результаты подстановкой параметров в запрос.
  • Вопрос задан
  • 423 просмотра
Решения вопроса 1
angru
@angru
Если элементы селектов могут произвольно комбинироваться между собой, т.е. каждый с каждым, то все очень просто, получаем данные формы, не важно как, простой или ajax-запрос, комбинируем все элементы, затем отправляем запрос для каждой комбинации. кусок кода чтобы понять принцип:

print([[x, y, z] for x in range(3) for y in range(3) for z in range(3)])

# ну или на привычных циклах
res = []

for x in range(3):
    for y in range(3):
        for z in range(3):
            res.append([x, y, z])

print(res)


Если же элементы комбинируются по определенным правилам, нужно строить какой-нибудь граф комбинаций.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
работа с AJAX +
While - если не можешь
For - если можешь
подобрать параметры
Ответ написан
alekciy
@alekciy
Вёбных дел мастер
Значения для Select2 зависят от выбранного option в Select1? Значения Select3 зависят от выбранного option в Select2? Можно тупо методом банального перебора.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы