2012-04-02 2 views
2

Я пытаюсь загрузить мобильную версию веб-страницы с помощью java-программы для извлечения небольшого количества информации с веб-страницы.Имитация мобильного веб-браузера из java-программы

В Firefox, после добавления переключателя плагин агента пользователя, я добавил новый пользовательский агент со значением

"Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413" 

После этого, если я пытаюсь загрузить http://www.bbc.co.uk/, мобильная версия веб-страницы успешно загружен.

Но я пытаюсь сделать то же самое с помощью программы Java с использованием библиотеки апачского HTTPClient, установив User-Agent, как указано ниже:

HttpClient httpclient = new DefaultHttpClient(); 

HttpProtocolParams.setUserAgent(httpclient.getParams(), 
    "Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413"); 

Но я не получаю мобильную версию ту же ссылку.

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

Не могли бы вы помочь мне решить эту проблему?

+0

Включить HttpClient протоколирование (http://hc.apache.org/httpcomponents-client-ga/logging.html) и сообщение r esults. – fglez

+0

Теперь я обнаружил, что проблема связана с сайтами, которые устанавливают window.location для перенаправления веб-страницы в ответ .. каким-то образом apache httpclient-4.1.3 не обрабатывает этот параметр автоматически даже после настройки перенаправления HttpClientParams.setRedirecting (params, true); DefaultHttpClient httpclient = new DefaultHttpClient (params); –

ответ

1

HttpClient не поддерживает JavaScript redirection.

Обратите внимание, что HttpClient не является браузером. Важно, что в нем не хватает пользовательского интерфейса, кеша, средства визуализации HTML и механизма JavaScript. Чтобы узнать больше о масштабах HttpClient см HttpClient Primer

Может быть, вы можете попробовать предложенные решения в этих вопросах

+0

Спасибо .. Я начал использовать HtmlUnit сейчас, и он отлично справляется с перенастройкой скрипта java. –

0

Вы установилиFollowRedirects на HttpClient?

+0

Привет, я установил параметр «http.protocol.handle-redirects» в «true», поскольку setFollowRedirects не поддерживается методом HttpGet в HttpClient 4.0. –

Смежные вопросы