Управление веб-сайтом (html / javascript) через Python (jQuery / Ajax) без браузера - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь написать небольшой Python -скрипт, который открывает / загружает контент с веб-сайта (без браузера) и изменяет значения на веб-сайте. Веб-сайт был явно написан для графического пользовательского ввода через веб-браузер, однако теперь мне нужно изменить эти значения автоматически и не могу изменить эти настройки вручную.

Ниже вы можете найти примеры фрагментов для соответствующих HTML и javascript код, который изменяет значения домашней страницы. Я извлек этот код через «инспектор кода» и не имею доступа к ним.

Веб-сайт работает локально в моей сети через http: \ *. . . *: 8080. где . . . - мой IP, а 8080 - порт (оба фиксированные).

Я предполагаю, что следующая строка необходима, однако мне неясно, как чтобы воспроизвести это с помощью Python:

 $.ajax(root+'/settings/' + control + '?set='+val).fail(display_error('cannot_set', control));

Я искал несколько Python пакетов, таких как flask, http, request, однако я не нашел хорошего ответа, как может быть моя проблема решен.

В конце я хотел бы иметь метод Python с простым вызовом аргумента, близким к следующему:

def change_crop_x(val):
   # Here needs to be the python code I'm unsure of
   return True # True if value was succesfully changed

Любая помощь будет очень признательна.

Best, Florian

<div class="form-group" id="crop_host">
  <label class="col-xs-3 control-label">Crop</label>
  <div class="col-xs-4">
    <label class="col-xs-2 nopadding" for="range_crop_x">X:</label> <input class="col-xs-10" id="range_crop_x" type="range" min="0" max="100" value="50"/>
  </div>
  <div class="col-xs-4">
    <label class="col-xs-2 nopadding" for="range_crop_y">Y:</label> <input class="col-xs-10" id="range_crop_y" type="range" min="0" max="100" value="50" />
  </div>
</div>

Пример содержимого для изменения

  var crops = ["crop_x", "crop_y"]
  var crop_holders = []
  for (i in crops) {
    var control = crops[i]
    crop_holders.push({
      val: get_val('#range_'+control),
      id: -9999,
      upd: function(val) {},
      cmd: function(control){ return function(val) {
        if (val == 0) {
          val = 1;
        }
        $.ajax(root+'/settings/' + control + '?set='+val).fail(display_error('cannot_set', control));
      }} (control)
    })
  }
if (config.curvals.crop_x != undefined) {
      $('#range_crop_x')
        .val(config.curvals.crop_x)
        .change(scheduleUpdateW(crop_holders[0]));
      $('#range_crop_y')
        .val(config.curvals.crop_y)
        .change(scheduleUpdateW(crop_holders[1]));
    } else {
      $('#crop_host').hide()
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...