как разобрать веб-страницу через брандмауэр - PullRequest
2 голосов
/ 25 декабря 2010

Я пытаюсь проанализировать веб-URL с этим Jsoup код:

Document doc = Jsoup.connect("http://www.*url*.com").get();
String title = doc.title();
System.out.println("title: "+title);

Я всегда получаю ошибку ниже

Exception in thread "main" java.io.IOException: 403 error loading URL http://www.*url*.com
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:327)
    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:130)
    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:119)
    at HttpRequestPoster.main(HttpRequestPoster.java:151)

Мой компьютер является членом сети, которая управляется межсетевым экраном kerio winroute. Перед подключением к Интернету мы подключаемся к брандмауэру из наших веб-браузеров. Причина должна быть в этом. Как я могу разобрать URL?

Ответы [ 2 ]

2 голосов
/ 03 января 2011

Настройка пользовательского агента у меня сработала.

Document document = Jsoup.connect(url).header("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2").get();
1 голос
/ 03 января 2011

Ошибка HTTP 403 просто означает Forbidden.

Сервер понял запрос, но отказывается его выполнить.

Другими словами, серверная сторона на основе информации, относящейся к запросу, решила, что запрашивающая сторона не может получить ответ.Это может иметь много причин: в заголовках запросов отсутствует конкретная информация, запрещен IP-адрес, запрещен пользовательский агент и т. Д.для уточнения и разрешения.Вы также можете использовать настоящий веб-браузер и отслеживать, используя трекер HTTP-трафика, такой как Firebug или Fiddler2, чтобы проверить детали запроса / ответа.HttpConnection class Jsoup предлагает как минимум несколько методов для установки заголовков, файлов cookie и / или пользовательского агента при необходимости.

...