Войдите на сайт с расширением Chrome и получите от него данные - PullRequest
9 голосов
/ 18 марта 2011

Я разрабатываю расширение Chrome / Chromium, которое будет читать школьные оценки из школьной системы с оценками.Проблема в том, что сайт не запоминает зарегистрированного пользователя.Из-за этого я не могу использовать AJAX.

Только если я зашел на эту страницу на других вкладках.Но я хочу войти на эту страницу в фоновом режиме и автоматически.Решением может быть тег iframe, но Chrome / Chromium не позволяют мне читать и манипулировать контентом iframeЕсть ли решение, как манипулировать на странице, как зарегистрированный пользователь?Спасибо

Ответы [ 2 ]

9 голосов
/ 18 марта 2011

Вы можете эмулировать отправку формы через javascript с фоновой страницы.Во-первых, вам нужно тщательно проверить, какие данные отправляются через форму входа и на какой URL-адрес (перед отправкой форму можно изменить с помощью javascript, поэтому вам нужно знать, что на самом деле отправляется, а не только то, что находится в элементе <form>).Вы можете использовать консоль Chrome для простых вещей, если этого недостаточно, есть плагин Tamper Data для Firefox, а для жесткого контроля трафика вы можете использовать Wireshark анализатор.

Затем на фоновой странице (я использую jQuery здесь):

$.ajax({
    url: "https://login_form.html",
    type: "GET",
    dataType: "html",
    success: function() {
        $.ajax({
            url: "https://login_form_submits_to.html",
            type: "POST",
            data: {
                    "username": "username",
                    "password": "password",
                    "extra_field": "value"
            },
            dataType: "html",
            success: function(data) {
                   //now you can parse your report screen
            }
        });
    }
});

Хорошо, что Chrome сохраняет сеанс и файлы cookie, поэтому это похоже на вход в систему вручную (если вы теперь открываете свой сайт вбраузер вы должны войти в систему).

0 голосов
/ 18 марта 2011

Как насчет использования cURL для невидимого входа пользователя в систему, а затем возврата результатов из вызова JSONP?

...