Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
#1

Извлечение кода из страницы WebView - Программирование Android

26.03.2015, 09:49. Просмотров 2814. Ответов 50
Метки нет (Все метки)

Здравствуйте.
Есть страница загруженная WebView с кодом авторизации, который нужно использовать в приложении.
Как этот код можно извлечь из WebView программно?
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2015, 09:49     Извлечение кода из страницы WebView
Посмотрите здесь:
Android Доступ из HTML кода страницы, загруженной в WebView, к данным приложения
Android WebView. Получение исходного кода. Зависание
Android Webview Веб браузер отображает некорректно страницы
Вместо открытия страницы в WebView предлагает открытие в браузере Android
Android Получение кода страницы
Получение кода web страницы Android
Получение html кода страницы Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
26.03.2015, 19:44  [ТС]     Извлечение кода из страницы WebView #2
Подробно ситуация выглядит так

Окно

Извлечение кода из страницы WebView

вызвано кодом

Java
1
2
3
......
mWebView.loadUrl(authorizationUrl);
......
Как достать Verifier code в приложение отсюда?

Извлечение кода из страницы WebView
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
27.03.2015, 16:46     Извлечение кода из страницы WebView #3
2 способа:

1. Берешь код элемента body (webview.document.getElementById('body'), и пишешь парсер для конкретного значения
например делишь код на массив строк, бежишь по нему, находишь нужную, затем в строке ищешь первое вхождение indexOf("Verifaed Code:"), и '<\p>' вытаскиваешь подстроку (substring) и все собственно

2. Более цивильный способ - использовать библиотку для парсинга веб страниц, например очень хорошая JSOUP
http://jsoup.org/

там конкретно можно по пути найти значение (document.select('body').select ..... и т.д.)
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
30.03.2015, 01:11  [ТС]     Извлечение кода из страницы WebView #4
Цитата Сообщение от fgtmenow Посмотреть сообщение
Берешь код элемента body (webview.document.getElementById('body')
это что за выражение? я не нахожу у webview "document".

Можно ли перевести в String всю страницу WebView, с тем, чтобы парсить ее jsoup'ом?

Добавлено через 2 часа 30 минут
Есть ли возможность "не грузить страницу" с помощью webview?
т.е., получить до начала загрузки url, который СОБИРАЕТСЯ грузить webview, для использования в своих целях.

пробую получать url в методе onPageStarted, там не знают подготовленный для загрузки url.
Думаю, нужно переопределить еще один из методов webview,но какой?
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
30.03.2015, 01:27     Извлечение кода из страницы WebView #5
http://jsoup.org/

Java
1
2
Document doc = Jsoup.connect("ВАШ УРЛ СТРАНИЦЫ").get();
Elements newsHeadlines = doc.select(".messages");
А дальше

Java
1
2
for(Element data : newsHeadlines) 
     Log.e("", data.text());
Добавлено через 1 минуту
И кстати это все должно быть в отдельном треде.
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
30.03.2015, 14:06  [ТС]     Извлечение кода из страницы WebView #6
Цитата Сообщение от dajver Посмотреть сообщение
И кстати это все должно быть в отдельном треде.
ок, буду пробовать.

Добавлено через 12 часов 37 минут
Дело в том, что подключиться jsoup к url я не могу -- token будет просроченный. А вот пропарсить полученную страницу в webview как-то можно?
типа
Java
1
Document doc = Jsoup.parse(myWebView);
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
30.03.2015, 15:01     Извлечение кода из страницы WebView #7
http://bit.ly/1HeLGI1 вот тут ответ на твой вопрос,

затем полученный код парси через jsoup
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
30.03.2015, 17:37  [ТС]     Извлечение кода из страницы WebView #8
Цитата Сообщение от fgtmenow Посмотреть сообщение
http://bit.ly/1HeLGI1 вот тут ответ на твой вопрос,
я так понимаю, для того, чтобы извлечь verifier code в приложение, без javascript не обойтись
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
30.03.2015, 17:53     Извлечение кода из страницы WebView #9
я бы предложил тебе сделать авторизацию через jsoup, получить документ с токеном и работать уже с ним

https://**********/q/64396 вот например сцылочка в помощь
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
30.03.2015, 19:36  [ТС]     Извлечение кода из страницы WebView #10
Пробую делать через Jsoup, шаг за шагом.
Первый шаг.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.parsing);
 
        Thread t = new Thread(
 
                new Runnable() {
 
                    public void run() {
 
                        Connection con = Jsoup.connect("http://myMagentoUrl/oauth/initiate");
                        con.method(Connection.Method.POST);
 
                        try {
 
                            Connection.Response resp = con.execute();
                            System.out.println("statusCode: " + resp.statusCode());
 
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                });
 
        t.start();
    }
результат:

Код
W/System.err: org.jsoup.HttpStatusException: HTTP error fetching URL. Status=400, URL=http://myMagentoUrl/oauth/initiate
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
30.03.2015, 20:19     Извлечение кода из страницы WebView #11
ты почитай для начала про POST/GET запросы. потому что ты пытаешься сделать.... ну бред полный в данный момент

P.S. попробуй поизучать используя wireshark как общается браузер и сервер, а затем попробуй повторить это в коде самостоятельно
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
30.03.2015, 21:13  [ТС]     Извлечение кода из страницы WebView #12
Цитата Сообщение от fgtmenow Посмотреть сообщение
ты пытаешься сделать.... ну бред полный в данный момент
Вы меня пристыдили, иду в уголок, обложившись книжками ))
Цитата Сообщение от fgtmenow Посмотреть сообщение
попробуй поизучать используя wireshark как общается браузер и сервер, а затем попробуй повторить это в коде самостоятельно
Буду рад любым примерам, которые помогут попробовать и понять технологию подключения rest api oauth android
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
30.03.2015, 21:40     Извлечение кода из страницы WebView #13
вот тебе список литературы на ночь

http://habrahabr.ru/company/pentestit/blog/204274/ wireshark
http://habrahabr.ru/post/50147/ POST / GET
https://ru.wikipedia.org/wiki/%D0%97...%BA%D0%B8_HTTP про заголовки HTTP
http://scriptsite.ru/article/show/5/ туда же

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

Добавлено через 5 минут
P.S. ну если вкратце, то копать тебе надо в сторону заголовком запроса и данных, которые ты пытаешься отправить вместе с POST запросом. а в твоем примеры ты пытался отправить совершенно пустой запрос, даже без заголвоком на что и получил ответ сервера "400 ошибка, плохой запрос"
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
30.03.2015, 21:41  [ТС]     Извлечение кода из страницы WebView #14
Цитата Сообщение от fgtmenow Посмотреть сообщение
пример ... ну черт знает, в ближайшие пару дней тоже с аналогичной задачей буду работать, если не горит покидаю сюда примеры
А я вот думаю, может быть, мне использовать не WebView а что-нибудь пофункциональнее? чью станицу потом можно просто пропарсить на предмет verifier code
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
31.03.2015, 01:09     Извлечение кода из страницы WebView #15
ну так я тебя с самого первого своего комментария в эту сторону толкаю =)
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
31.03.2015, 01:20  [ТС]     Извлечение кода из страницы WebView #16
работаю над составлением запросов post и get в java.
может, примерчики проверенные есть?
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
31.03.2015, 09:34     Извлечение кода из страницы WebView #17
для начала тебе необходимо узнать, какие заголовки содержит post пакет, отправленный обычным браузером серверу

wireshark не так просто я тебе кидал

ну и скажи уже куда ты собираешься логиниться уже ато больно вк напоминает
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
31.03.2015, 10:41  [ТС]     Извлечение кода из страницы WebView #18
Цитата Сообщение от fgtmenow Посмотреть сообщение
wireshark не так просто я тебе кидал
пробовал я его пользовать, для меня пока слишком сильная вещь
пробую с помощью этой программы разобраться
HTTPAnalyzer
но все равно пока на месте, в моем случае не совсем все понятно

Цитата Сообщение от fgtmenow Посмотреть сообщение
ну и скажи уже куда ты собираешься логиниться уже
это магазин на движке magento
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
31.03.2015, 11:11     Извлечение кода из страницы WebView #19
К сведению.
Код из панели разработки браузера может не совпадать с исходным кодом страницы, поэтому копать надо из реально полученного кода в приложении. Недавно тут кто-то на эти грабли наступал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2015, 11:32     Извлечение кода из страницы WebView
Еще ссылки по теме:
Android Вытянуть информацию с кода страницы сайта
Android Webview
WebView Android
Android WebView
WebView - Height Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
31.03.2015, 11:32     Извлечение кода из страницы WebView #20
мы тут речь ведем не о коде страницы а о заголовках запросов, ато запутается еще
Yandex
Объявления
31.03.2015, 11:32     Извлечение кода из страницы WebView
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru