Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

Здравствуйте.
Есть страница загруженная WebView с кодом авторизации, который нужно использовать в приложении.
Как этот код можно извлечь из WebView программно?
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2015, 09:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Извлечение кода из страницы WebView (Программирование Android):

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

Webview Веб браузер отображает некорректно страницы - Программирование Android
Прощу прощение если тема не в теме и такое уже== правда искал не нашел Сразу хочу оговориться я не профессиональный программист под...

WebView. Получение исходного кода. Зависание - Программирование Android
final WebView browser = (WebView) findViewById(R.id.webView); browser.getSettings().setJavaScriptEnabled(true); ...

Вместо открытия страницы в WebView предлагает открытие в браузере - Программирование Android
Добрый день. У меня есть Webview-открываю страничку в страничке есть форма которая передает значения обработчику, при клике на кнопку...

Получение кода страницы - Программирование Android
Приложение закрывается после нажатия на кнопку почему? public class MainActivity extends Activity { EditText editText; String s...

Получение кода web страницы - Программирование Android
Не могу получить код web страницы: runOnUiThread(new Runnable() { @Override public void run() { try { ...

50
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
26.03.2015, 19:44  [ТС] #2
Подробно ситуация выглядит так

Окно

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

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

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

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

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

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

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

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

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

пробую получать url в методе onPageStarted, там не знают подготовленный для загрузки url.
Думаю, нужно переопределить еще один из методов webview,но какой?
0
dajver
410 / 274 / 18
Регистрация: 18.09.2010
Сообщений: 1,114
30.03.2015, 01:27 #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 минуту
И кстати это все должно быть в отдельном треде.
1
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
30.03.2015, 14:06  [ТС] #6
Цитата Сообщение от dajver Посмотреть сообщение
И кстати это все должно быть в отдельном треде.
ок, буду пробовать.

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

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

вот например сцылочка в помощь
1
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
30.03.2015, 19:36  [ТС] #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
0
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 256
30.03.2015, 20:19 #11
ты почитай для начала про POST/GET запросы. потому что ты пытаешься сделать.... ну бред полный в данный момент

P.S. попробуй поизучать используя wireshark как общается браузер и сервер, а затем попробуй повторить это в коде самостоятельно
1
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
30.03.2015, 21:13  [ТС] #12
Цитата Сообщение от fgtmenow Посмотреть сообщение
ты пытаешься сделать.... ну бред полный в данный момент
Вы меня пристыдили, иду в уголок, обложившись книжками ))
Цитата Сообщение от fgtmenow Посмотреть сообщение
попробуй поизучать используя wireshark как общается браузер и сервер, а затем попробуй повторить это в коде самостоятельно
Буду рад любым примерам, которые помогут попробовать и понять технологию подключения rest api oauth android
0
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 256
30.03.2015, 21:40 #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 ошибка, плохой запрос"
1
lihusha
3 / 3 / 0
Регистрация: 21.03.2015
Сообщений: 67
30.03.2015, 21:41  [ТС] #14
Цитата Сообщение от fgtmenow Посмотреть сообщение
пример ... ну черт знает, в ближайшие пару дней тоже с аналогичной задачей буду работать, если не горит покидаю сюда примеры
А я вот думаю, может быть, мне использовать не WebView а что-нибудь пофункциональнее? чью станицу потом можно просто пропарсить на предмет verifier code
0
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 256
31.03.2015, 01:09 #15
ну так я тебя с самого первого своего комментария в эту сторону толкаю =)
1
31.03.2015, 01:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2015, 01:09
Привет! Вот еще темы с ответами:

Получение html кода страницы - Программирование Android
Помогите разобраться с получением html кода интернет страницы в приложении android, для последующего извлечения из неё информации.

Вытянуть информацию с кода страницы сайта - Программирование Android
Всем привет! Нашел пример в интернете как сделать простое приложение, которое считывает температуру с сайта. По кнопке Button обновляет...

Адрес страницы отображаемой WebView - JavaFX
Всем хаю-хай, скажите, как мне получить ссылку веб-страницы, которая в данный момент отображается у меня на JFrame через WebView. Хотел...

webView загрузка страницы. Не работает сигнал - C++ Qt
ui-&gt;webView-&gt;load(QNetworkRequest(QUrl(&quot;http://m.facebook.com&quot;)), ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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