2012-03-19 4 views
1

Я играл с html-парсером Jericho, но я не могу найти информацию или, скорее, пример того, как установить или изменить пользовательский агент. Я нашел класс Config, но не знаю, как его использовать, может ли кто-нибудь еще дать мне пример, пожалуйста?Как установить пользовательский агент с парсером Jericho

Мне удалось проанализировать веб-сайт, как я хочу, но я не уверен, добавляет ли парсер Иерихона пользовательский агент. Как вы знаете, я хочу, чтобы надлежащий агент пользователя запретил сайту запрещать мне доступ к его контенту.

спасибо.

+0

«Как вы знаете, я хочу, чтобы надлежащий агент пользователя запретил сайту запрещать доступ к его контенту». - Похоже, вы пытаетесь заставить свою программу игнорировать содержимое «robots.txt» на целевом веб-сайте. Это * не * то, что вы должны пытаться сделать. Любая программа, которая обращается к веб-странице, должна подчиняться содержимому «robots.txt». Последствия этого не могут заключаться в том, что веб-сайт предполагает, что ваша программа является спамботом и блокирует любые запросы, исходящие от IP-адреса, с которого ваша программа отправляет запросы. – Jon

+0

Jon, thnx для вашего сообщения, я полностью забыл о файле robots.txt. Во всяком случае, сайт, на котором я тестировал, позволяет сканировать страницу (я предполагаю, что это нужно для индексации бота Google). Тем не менее, могут быть сайты, которые не позволяют по какой-то причине, но пытаются получить к нему доступ в любом случае, притворяясь «обычным» браузером. Кто-нибудь знает, как это сделать с Иерихоном? Спасибо. Кстати, вы должны отметить, что я не «украл» контент для неправильного использования, и я делаю это только один раз (например, через несколько дней). – AndaluZ

+0

Хорошо, справедливо. Я быстро посмотрел на API Jericho, и он выглядит как в классе под названием «Источник», вы можете передать объект JCK URLConnection. URLConnection позволяет вам устанавливать заголовки в запросе, и один из этих заголовков может быть «User-Agent». Я бы посмотрел на это так. Посмотрите на метод «setRequestProperty» и прочитайте следующее: http://stackoverflow.com/questions/5773800/httpurlconnection-redirection-does-not-use-request-properties-of-orginial-connec – Jon

ответ

3

В дополнение к моему комментарию выше, убедитесь, что вы всегда obey robots.txt. Кроме того, код, который вы хотите, должен выглядеть примерно так.

 

import java.net.URL; 
import java.net.URLConnection; 
import java.util.List; 

import net.htmlparser.jericho.Element; 
import net.htmlparser.jericho.Source; 

public class HtmlFun { 

    public static void main(String[] args) throws Exception { 
     URL url = new URL("http://www.google.com"); 
     URLConnection conn = url.openConnection(); 
     conn.setConnectTimeout(1000); 
     conn.setReadTimeout(1000); 
     conn.setRequestProperty("User-Agent", "Mozilla"); 

     Source source = new Source(conn); 
     List elems = source.getAllElements(); 
     for(Element elem : elems) { 
     System.out.println(elem); 
     } 
    } 
} 
 

Не удается запустить его с работы из-за проблем с брандмауэром, но я думаю, что это должно сработать для вас. Если нет, что-то подобное сделает трюк.

+0

Джон, большое спасибо за твоя помощь, я очень ценю это. Я не могу проголосовать за вас, поскольку мне нужна 15 репутация ... что бы это ни было. В любом случае я проверил ваше сообщение как решение, еще раз спасибо. – AndaluZ

+0

Не беспокойтесь. Рад помочь :-) – Jon

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