Понимание User-Agent при очистке данных URL с помощью JSoup - PullRequest
0 голосов
/ 26 апреля 2018

Моя основная цель - создать что-то вроде типичного веб-проекта для веб-ссылок. Для этого я использую JSoup.

Для User-Agent я изначально использовал строку -

Mozilla/5.0 (Macintosh; U; Intel Mac OS X; de-de) AppleWebKit/523.10.3 (KHTML, like Gecko) Version/3.0.4 Safari/523.10

для следующего вызова метода -

public void connect(String URL) throws IOException {
    Document document = Jsoup
        .connect(URL)
        .userAgent(USER_AGENT)
        .referrer(REFERRER)
        .timeout(12000)
        .followRedirects(true)
        .get();
  }

Но я мог видеть, что URL не был «правильно» очищен при использовании вышеупомянутого User-Agent, в отличие от чего-то вроде Mozilla/5.0. Например, я не получал данные oEmbed с метатегом type=application/json+oembed в head URL-адреса, когда использовал первый, но работал, когда использовал последний. Я предполагаю, что, возможно, это как-то связано с .js фрагментами URL-адреса, отправляемого бывшему User-Agent, в то время как это обычный старый HTML-код для более поздней версии, но я пока не разбираюсь в этом подробно.

Я понимаю, что Mozilla/5.0 просто должен быть совместимым с Mozilla, но что именно означает Mozilla/5.0 (Macintosh; U; Intel Mac OS X; de-de) AppleWebKit/523.10.3 (KHTML, like Gecko) Version/3.0.4 Safari/523.10?

Может кто-нибудь прояснить мои вопросы или указать мне какую-нибудь полезную документацию для Агентов пользователей?

1 Ответ

0 голосов
/ 26 апреля 2018

Большинство веб-браузеров используют строковое значение User-Agent следующим образом:

Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions]. 

Например, Safari на iPad использовал следующее:

Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405

Компоненты этой строки следующие:

Mozilla / 5.0: Ранее использовался для указания совместимости с движком рендеринга Mozilla.

(iPad; U; CPU OS 3_2_1, как Mac OS X; ru-ru): сведения о системе, в которой работает браузер. AppleWebKit / 531.21.10: платформа, которую использует браузер.

(KHTML, как Gecko): сведения о платформе браузера.

Mobile / 7B405: используется браузером для указания конкретных улучшений, доступных непосредственно в браузере или через третьих лиц. Примером этого является Microsoft Live Meeting, которая регистрирует расширение, чтобы служба Live Meeting знала, установлено ли уже программное обеспечение, что означает, что оно может упростить присоединение к собраниям.

Подробнее о User-Agent можно узнать из wikipedia . Есть также ссылки на документацию, если вам нужна более конкретная информация.

...