2016-04-26 15 views
0

Я занимаюсь анализом HTML с использованием Jsoup в Android, и я столкнулся с некоторыми странными вещами (для меня). Некоторые сайты работают нормально, используя простой метод Jsoup.connect(String).get().Jsoup userAgent на Android - Что это значит?

Но в некоторых других местах I ВСЕГДА Получите EOFException. Поэтому я искал и решал свойство userAgent, и когда я использую Jsoup.connect(String).userAgent("Mozilla").get(), он работает нормально.

Теперь, что именно означает «мозилла»? Что мое приложение может работать только с устройствами, установленными Mozilla?

+0

Немного поисковой системы не повреждает https://en.wikipedia.org/wiki/User_agent. Каждый сайт должен решить, как он обрабатывает заголовок 'user-agent'. Он может отклонить запрос, если 'user-agent' пуст или * неизвестен * или имеет неправильный формат или ... что угодно. Он также может просто игнорировать его. – nyname00

ответ

2

Каждый раз, когда ваш веб-браузер открывает веб-страницу, он отправляет «запрос» для этой страницы. Часть этого запроса включает в себя ряд «заголовков». Предположим, что вы используете Firefox, чтобы открыть Google, то что-то вроде этого будет отправлено на Google

Host www.google.com 
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language de,en-US;q=0.7,en;q=0.3 
Accept-Encoding gzip, deflate 

.... HTML ответов в свою очередь оптимизирован для настольных компьютеров/гусеничном или вообще для браузера (User-Agent) ты используешь. Иногда он полностью отличается от html-ответа, который отправляется обратно, например, мобильным агентам (Android). У мобильной версии может не быть ничего, что бы соответствовало вашим селекторам Jsoup. Таким образом, с помощью userAgent («Mozilla»). Get() сообщает, что вы хотите получить тот же ответ для своего приложения, который вы видите при открытии google.com с помощью браузера рабочего стола.

+0

Ах, я понял. Таким образом, это не имеет никакого отношения к установке какого-либо приложения Mozilla. Хорошо. Спасибо. – God