Автоматически считывать содержимое для гиперссылки, которая создается сценарием Java на HTML-странице.

0

Я хочу автоматически получать контент с веб-страницы, которая является интерфейсом для базы данных.

Страница содержит список школ в определенной области. Каждое имя является гиперссылкой. Я хочу получить все детали для каждой школы, но они доступны только с помощью javascript, который затем открывает всплывающее окно с необходимой информацией в таблице html.

Интерфейс базы данных находится здесь: http://www.kultusportal-bw.de/,Lde/Startseite/schulebw/Schuladressen

  1. Если я просто нажимаю кнопку ввода в текстовом поле (пустое), я получаю такой результат:
    Изображение 174551

  2. Если затем я нажимаю на первую ссылку "Aach, Grund- und Hauptschule", скрипт java открывает всплывающее окно с такими данными адреса:
    Изображение 174551

Сама гиперссылка называется "javascript: ShowDetails (" 04146900 "), поэтому она не ведет к отдельной странице, а выполняет какой-то скрипт (что, к сожалению, превышает мои знания). Я хотел бы автоматически скопировать имя гиперссылки вместе с содержимым html этого всплывающего окна в текстовый или html файл для всех гиперссылок. Как я мог это сделать?


Я попытался посмотреть, что происходит с LIVE HTTP Headers в Firefox, и когда я нажимаю на ссылку, я получаю следующий результат:

https://stewi.kultus-bw.de/didsuche/DienststellenSucheWebService.asmx/GetDienststelle

POST /didsuche/DienststellenSucheWebService.asmx/GetDienststelle HTTP/1.1
Host: stewi.kultus-bw.de
User-Agent: (...)
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/json; charset=utf-8
X-Requested-With: XMLHttpRequest
Referer: https://stewi.kultus-bw.de/didsuche/
Content-Length: 20
Cookie: ASP.NET_SessionId=3ly0zyatmod1tqoe2sbwwe0p
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
{'disch':'04146900'}
HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Sun, 05 Jan 2014 11:07:20 GMT
Content-Length: 651

Я попытался "имитировать" щелчок по гиперссылке, составив ссылку, например ** https://stewi.kultus-bw.de/POST/didsuche/DienststellenSucheWebService.asmx/GetDienststelle {'disch': '04146900'} ** но это не работает.

Теги:
automation

1 ответ

1

Вы можете использовать отладчик Chrome для проверки Javascript. В любом случае, быстрый ответ на ваш вопрос:

Метод ShowDetails вызывает функцию LoadDetailAnsicht (Deunglisch очень присутствует здесь)...

function LoadDetailAnsicht(disch) {
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "DienststellenSucheWebService.asmx/GetDienststelle",
            data: "{'disch':'" + disch + "'}",
            dataType: "json",
            success: function (msg) {
                DetailAnsichtCallback_CallbackComplete(msg.d);
            }
        });
    }

Это ajax-вызов с json и вероятная полезная нагрузка POST. То есть данные публикуются как json. Вот почему вы не можете получить нормальный URL для него.

  • 0
    Спасибо! Мне не обязательно нужен нормальный URL, но мне нужен контент. Извините, на данный момент я абсолютно невежественен, так как не знаю AJAX или JavaScript. Есть ли простой способ выполнить этот сценарий для каждой ссылки (которая имеет другой идентификатор, например 04146900 в приведенном выше примере) и записать содержимое созданного окна в файл или скопировать его в буфер обмена?
  • 0
    Я также пытался увидеть, что происходит с Live HTTP-заголовками в Firefox (см. Мое редактирование выше), но это тоже не работает ... любой совет, как заставить это работать, будет оценен.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню