найдите слова в странице HTML с JavaScript

в legacy / train.py и legacy / eval.py

Example usage:
    ./train \
        --logtostderr \
        --train_dir=path/to/train_dir \
        --pipeline_config_path=pipeline_config.pbtxt

Example usage:
    ./eval \
        --logtostderr \
        --checkpoint_dir=path/to/checkpoint_dir \
        --eval_dir=path/to/eval_dir \
        --pipeline_config_path=pipeline_config_path.pbtxt \

для одного терминала вы используете train.py для обучения,

для другого терминала вы используете eval.py чтобы оценить,

убедитесь, что train_dir совпадает с checkpoint_dir и eval_dir

, а другой терминал открывает тензорную доску

]

убедитесь, что вы установили свое аппаратное устройство, иначе вы не сможете открыть поезд и eval одновременно

13
задан Chen Kinnrot 14 April 2009 в 16:08
поделиться

4 ответа

Чтобы найти элемент, в котором существует слово, вам нужно пройти по всему дереву, просматривая только текстовые узлы, применяя тот же тест, что и выше. Как только вы найдете слово в текстовом узле, верните родителя этого узла.

var word = "foo",
    queue = [document.body],
    curr
;
while (curr = queue.pop()) {
    if (!curr.textContent.match(word)) continue;
    for (var i = 0; i < curr.childNodes.length; ++i) {
        switch (curr.childNodes[i].nodeType) {
            case Node.TEXT_NODE : // 3
                if (curr.childNodes[i].textContent.match(word)) {
                    console.log("Found!");
                    console.log(curr);
                    // you might want to end your search here.
                }
                break;
            case Node.ELEMENT_NODE : // 1
                queue.push(curr.childNodes[i]);
                break;
        }
    }
}

это работает в Firefox, никаких обещаний для IE нет.

Он начинает с элемента body и проверяет, существует ли слово внутри этого элемента. Если этого не произойдет, то это все, и поиск на этом заканчивается. Если это в элементе тела, затем он проходит через всех непосредственных детей тела. Если он находит текстовый узел, то посмотрите, находится ли слово в этом текстовом узле. Если он найдет элемент, вставьте его в очередь. Продолжайте, пока не найдете слово или больше нет элементов для поиска.

18
ответ дан 1 December 2019 в 22:08
поделиться

Вы можете перебирать элементы DOM, ища в них подстроку. Не быстрый и не элегантный, но для маленького HTML может работать достаточно хорошо.

Я бы попробовал что-то рекурсивное, например: (код не тестировался)

findText(node, text) {
  if(node.childNodes.length==0) {//leaf node
   if(node.textContent.indexOf(text)== -1) return [];
   return [node];
  }
  var matchingNodes = new Array();
  for(child in node.childNodes) {
    matchingNodes.concat(findText(child, text));
  }
  return matchingNodes;
}
4
ответ дан 1 December 2019 в 22:08
поделиться

Вы можете попробовать использовать XPath, это быстро и точно

http://www.w3schools.com/Xpath /xpath_examples.asp

Also Если XPath немного сложнее, то вы можете попробовать любую библиотеку javascript, например jQuery, которая скрывает шаблонный код и упрощает выражение того, что вы хотите найти.

Кроме того, как в IE8 и следующий Firefox 3.5, там также реализован API селекторов. Все, что вам нужно сделать, это использовать CSS, чтобы выразить, что искать.

1
ответ дан 1 December 2019 в 22:08
поделиться

Вероятно, вы можете прочитать тело дерева документов и выполнить простые строковые тесты на нем достаточно быстро без необходимости выходить далеко за рамки этого - хотя это немного зависит от HTML, с которым вы работаете, - насколько вы контролируете страницы? Если вы работаете на сайте, которым вы управляете, вы можете сосредоточить свой поиск на тех частях страницы, которые, вероятно, будут отличаться от страницы, если вы работаете со страницами других людей, у вас более сложная работа, потому что Вы не обязательно знаете, с каким контентом вам нужно тестировать.

Опять же, если вы собираетесь искать на одной и той же странице несколько раз и ваш набор данных велик, возможно, стоит создать какой-то индекс в памяти,

0
ответ дан 1 December 2019 в 22:08
поделиться
Другие вопросы по тегам:

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