Подобных ответов не найдено.Сканирование или очистка сайта, созданного Angular.js, с помощью Node.js или другим способом. - PullRequest
0 голосов
/ 01 декабря 2018

Подобных ответов не найдено.

Я пишу это сообщение, потому что хочу решить проблемы, возникающие в процессе разработки.Я пытался очистить сайт Angular с помощью nodejs, но не могу получить какую-либо конкретную информацию.Поместите некоторую скопированную информацию ниже

<section ng-if="toShow === 1" class="video-content race--overlay pre--race">
    <ul>
        <li ng-repeat="r in nextRunners | orderBy:'card_number'" class="pre__runner slide-animation">
            <header class="pre__runner--header" ng-class="{'rider--name':r.rider_name!=''}">
                <div class="video__item pre__runner--icon pre__section">
                    <category-icon category="iconWithNumber"
                                   class="jockey--silks"
                                   sport="sport_id+1"
                                   colour="r.card_number">
                    </category-icon>
                </div>
                <div class="video__item pre__runner--info pre__section"
                     ng-class="{'has--jockey':r.rider_name !== ''}">
                    <h2 class="pre__runner--name">{{r.participant_name}}</h2>
                    <h3 ng-if="r.rider_name!==''" class="pre__runner--jockey">{{r.rider_name}}</h3>
                </div>
            </header>
            <section class="pre__runner--history pre__section">
                <dl class="video__item">
                    <dt>{{::raceLang.last5}}:</dt>
                    <dd>{{r.last_five}}</dd>
                </dl>
            </section>
            <section class="pre__runner--odds pre__section">
                <h3 class="video__item">{{::raceLang.odds}}: <span>{{r.oddsWin}}</span></h3>
            </section>
        </li>
    </ul>
</section>

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

Например: {{::raceLang.last5}}, {{r.last_five}}

Нет ли способа решить это?Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Я решил эту проблему с помощью API приложения.Я позвонил в AJAX и получил данные JSON, и это сработало очень хорошо.Хотя мне пришлось добавить несколько заголовков HTTP ...

0 голосов
/ 01 декабря 2018

Angular - это фреймворк для создания одностраничного приложения.Как правило, эти виды веб-приложений отображаются на стороне клиента благодаря выполнению Javascript браузером.Когда вы извлекаете страницу из хорошо сделанного одностраничного приложения, вы на самом деле всегда получаете index.html или, если немного взломаете, какой-то другой неполный исходный HTML-файл.

Существует несколько решений:

Предварительная визуализация страниц

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

Эмуляция браузера

Для более простого подхода или если у вас нет контроля над сервером, с которого вы получаете данные, вы должны смоделироватьБраузерВзгляните на зомби . Phantom.js работает хорошо, но проект больше не поддерживается.

Используйте API приложения

Вы можете проверить приложение, используя ваш любимый браузер.Угловые приложения типично полагаются на API.Если вы понимаете, какой API-вызов вызывает приложение, вы, вероятно, могли бы получить все необходимые данные в хорошем формате (обычно JSON), без необходимости выполнять скучный html-анализ.Иногда, в зависимости от политик безопасности сервера, вам необходимо правильно настроить некоторые заголовки HTTP, чтобы они действовали как браузер или аутентифицированный пользователь.

...