comment fixer erreur HTTP récupérer l'URL. Statut=500 en java lors de l'exploration?

Je suis en train d'analyser les classements de l'utilisateur de cinéma des films de imdb à partir de la page d'examen:
(nombre de films dans ma base de données est d'environ 600 000). J'ai utilisé jsoup pour analyser les pages ci-dessous: (désolé, je n'avais pas écrire tout le code ici, car il est trop long)

try {
  //connecting to mysql db
  ResultSet res = st
        .executeQuery("SELECT id, title, production_year " +
                "FROM title " +
                "WHERE kind_id =1 " +
                "LIMIT 0 , 100000");
  while (res.next()){
       .......
       .......
     String baseUrl = "http://www.imdb.com/search/title?release_date=" +
            ""+year+","+year+"&title="+movieName+"" +
            "&title_type=feature,short,documentary,unknown";
    Document doc = Jsoup.connect(baseUrl)
            .userAgent("Mozilla")
            .timeout(0).get();
      .....
      ..... 
//insert ratings into database
      ...

Je l'ai testé pour la première 100, 500 premiers et également pour les 2000 premiers films dans ma db et cela a bien fonctionné. Mais le problème est que lorsque j'ai testé pour 100 000 films j'ai eu cette erreur:

org.jsoup.HttpStatusException: HTTP error fetching URL. Status=500,   URL=http://www.imdb.com/search/title?release_date=1899,1899&title='Columbia'%20Close%20to%20the%20Wind&title_type=feature,short,documentary,unknown
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:449)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:424)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:178)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:167)
at imdb.main(imdb.java:47)

J'ai beaucoup cherché pour cette erreur et j'ai trouvé que c'est une erreur du côté serveur avec 5xx erreur de numéro.

Alors j'ai décidé de définir une condition que lorsque la connexion échoue, il essaie 2 fois plus et puis si toujours impossible de se connecter, ne s'arrête pas et va à l'url suivante. depuis, je suis nouveau sur java, j'ai essayé de rechercher des questions similaires, et de lire ces réponses dans stackoverflow:

Des Exceptions alors que je suis l'extraction de données à partir d'un site Web

Jsoup erreur de manipulation lors impossible de se connecter au site web

Gestion des erreurs de connexion et JSoup

mais, quand j'essaie de la Connexion".Réponse", comme ils le suggèrent, il me dit que la Connexion".La réponse ne peut pas être résolu de type".

J'apprécie si quelqu'un pouvait m'aider, car je suis un novice et je sais que ça peut être simple, mais je ne sais pas comment le résoudre.


Bien, j'ai corrigé l'erreur http statut de 500 par le simple ajout de "ignoreHttpError(vrai)" comme ci-dessous:

org.jsoup.Connection con = Jsoup.connect(baseUrl).userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21");
con.timeout(180000).ignoreHttpErrors(true).followRedirects(true);
Response resp = con.execute();
Document doc = null;

if (resp.statusCode() == 200) {
    doc = con.get();
......

espère que cela peut aider ceux qui ont la même erreur.

cependant, après l'analyse de l'examen des pages de 22907 films (environ 12 heures), j'ai une autre erreur:
"READ TIMED OUT".

J'apprécie toute suggestion pour corriger cette erreur.

Qu'en est org.jsoup.Connection.Response?
J'ai essayé, mais je reçois cette erreur: Connexion refusée à java.net.PlainSocketImpl.socketConnect(Native method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
Je l'ai essayé et il me met le sortie: Connection.Response con = Jsoup .connect( "http://www.imdb.com/search/title?release_date=1899,1899&title='Columbia'%20Close%20to%20the%20Wind&title_type=feature,short,documentary,unknown") .userAgent( "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21") .timeout(10000).execute(); System.out.println(con.body());
désolé, l'erreur est: erreur HTTP récupérer l'URL. Statut=403, URL=imdb.com/search/... at org.jsoup.helper.HttpConnection$De Réponse.execute(HttpConnection.java:449) at org.jsoup.helper.HttpConnection$De Réponse.execute(HttpConnection.java:424) at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:178) at org.jsoup.helper.HttpConnection.get(HttpConnection.java:167)
403 moyens interdits, certains sites ne permettent pas des robots, donc vous devez utiliser .useragent() lors de l'extraction de la réponse. Essayez de copier le code dans mon commentaire ci-dessus et de voir si vous voyez le code javascript ou html comme code dans votre console, ce qui signifierait que la connexion a été un succès

OriginalL'auteur mOna | 2014-02-18