Пути перечисления всех файлов с расширением на веб-странице

Вот родная версия JS, которая возвращает путь jQuery. Я также добавляю идентификаторы для элементов, если они есть. Это даст вам возможность сделать кратчайший путь, если вы увидите идентификатор в массиве.

var path = getDomPath(element);
console.log(path.join(' > '));

Выходы

body > section:eq(0) > div:eq(3) > section#content > section#firehose > div#firehoselist > article#firehose-46813651 > header > h2 > span#title-46813651

Вот функция.

function getDomPath(el) {
  var stack = [];
  while ( el.parentNode != null ) {
    console.log(el.nodeName);
    var sibCount = 0;
    var sibIndex = 0;
    for ( var i = 0; i < el.parentNode.childNodes.length; i++ ) {
      var sib = el.parentNode.childNodes[i];
      if ( sib.nodeName == el.nodeName ) {
        if ( sib === el ) {
          sibIndex = sibCount;
        }
        sibCount++;
      }
    }
    if ( el.hasAttribute('id') && el.id != '' ) {
      stack.unshift(el.nodeName.toLowerCase() + '#' + el.id);
    } else if ( sibCount > 1 ) {
      stack.unshift(el.nodeName.toLowerCase() + ':eq(' + sibIndex + ')');
    } else {
      stack.unshift(el.nodeName.toLowerCase());
    }
    el = el.parentNode;
  }

  return stack.slice(1); // removes the html element
}
0
задан user308827 13 July 2018 в 16:18
поделиться

1 ответ

Веб-серверы работают с использованием протокола HTTP, который не имеет метода «список всех файлов». Если сам сервер не генерирует список и не отправляет для вас синтаксический анализ, нет никакого общего способа получить список файлов.

Что вы можете сделать, это загрузить некоторую страницу html, а затем проанализировать ее с помощью html парсер, например lxml.html, и извлечь все ссылки с этой страницы. Затем вы отправляете запрос для каждой из этих ссылок.

1
ответ дан nosklo 17 August 2018 в 12:27
поделиться
Другие вопросы по тегам:

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