2016-04-07 4 views
1

Я пытаюсь создать приложение для Android для сайта, который не является моим. Но это поисковая система для ресторанов. У них нет API для работы. И я хочу небрежно просматривать их веб-сайт и помещать поисковый запрос в форму HTML и нажать кнопку «Отправить». Затем проанализируйте результаты и используйте их с моим кодом приложения. После проведения многочисленных исследований здесь я, наконец, прошу об этом. Question 1, Question 2, Question 3 и многие другие, которые я просмотрел до сих пор. Так что все, что я знаю, до сих пор, если я хочу сделать то же самое на Google.com я бы написать:Android Headless Просмотр через WebView?

myWebView.getSettings().setJavaScriptEnabled(true); 

myWebView.loadUrl("http://www.google.com/"); 

myWebView.setWebViewClient(new WebViewClient() { 

@Override 
public void onPageFinished(WebView view, String url) { 
     //Load HTML 
      myWebView.loadUrl("javascript:document.getElementById('q') =" + "StackOverFlow" + "; document.getElementByName('btnK').click();"); 
     } 
    }); 

В приведенном выше коде я пытаюсь поставить термин «поиск StackOverflow» и нажмите кнопку поиска. Но это не работает. Просьба помочь мне в этом коде или указать мне в правильном направлении.

+0

Любой помощь было бы оценено –

+2

Создание приложения, которое извлекает данные, которые общедоступны на веб-сайте, не ворует, я полагаю. Также как клиент Facebook, клиент Youtube и прежде всего, как работает Google (сканирование через веб-сайты). –

ответ

0

Это было какое-то время, но для того, чтобы сообщить другим, веб-просмотры больше не используют loadUrl для запуска Javascript. Попробуйте использовать evaluateJavascript.

Поскольку вы также упомянули обезглавленный просмотр, я рекомендовал бы первостепенную shouldInterceptRequest в клиенте, чтобы перенаправлять все ненужные файлы (такие как CSS, изображения, и, возможно, JS в зависимости от сайта) на пустой InputStream