récupérer le code HTMl à partir d'une page web

récupérer le code HTMl à partir d'une page web - Java - Programmation

Marsh Posté le 28-02-2008 à 13:22:33    

bonjour,
j'ai besoin d'un code java ou des fonctions qui me permet de récupérer le format HTML d'une page web que je dispose de son URL et le mettre dans un fichier.txt que je l'utilise.

Reply

Marsh Posté le 28-02-2008 à 13:22:33   

Reply

Marsh Posté le 28-02-2008 à 13:37:08    

aroua a écrit :

une page web que je dispose de son URL (...) dans un fichier.txt que je l'utilise.


kikoo, lol.  [:pingouino]  [:pingouino]  [:pingouino]  
 
Tu peux écrire ce code et on t'aidera à le mettre au point, mais wget ou tout autre équivalent t'épargnerait de réinventer la roue.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 28-02-2008 à 14:24:35    

Elle sont pas forcément top top mes classes, mais je débute, mais ça m'a l'air pas trop mal :

Code :
  1. package controleur;
  2. import java.io.*;
  3. import javax.swing.*;
  4. import java.net.*;
  5. import java.util.*;
  6. import java.security.AccessControlException;
  7. public abstract class Requeteur{
  8. private String serveur;
  9. private String page;
  10. protected URL url;
  11. protected URLConnection connexion;
  12. private BufferedReader entrant;
  13. private OutputStreamWriter sortant;
  14. private String line=null;
  15. private ArrayList<ParametreUrl> donnees=null;
  16. public static JApplet applet;
  17. public Requeteur(String serveur){
  18.  this.setServeur(serveur);
  19. }
  20. private void Init(String page,ArrayList<ParametreUrl> donnees) throws AccessControlException, IOException{
  21. }
  22. public ArrayList<String> requete(String page,ArrayList<ParametreUrl> donnees) throws IOException,AccessControlException{
  23.  ArrayList<String> retour = new ArrayList<String>();
  24.  this.Init(page, donnees);
  25.  /** Récupération de la réponse de la servlet */
  26.  this.setEntrant(new BufferedReader(new InputStreamReader(this.getConnexion().getInputStream())));
  27.  while ((this.line = this.getEntrant().readLine()) != null) {
  28.   retour.add(this.line);
  29.  }
  30.  this.line=null;
  31.  this.getEntrant().close();
  32.  return retour;
  33. }
  34. //Serveur
  35. public void setServeur(String value){this.serveur=value;}
  36. public String getServeur(){return this.serveur;}
  37. //Page
  38. public void setPage(String value){this.page=value;}
  39. public String getPage(){return this.page;}
  40. //URL
  41. public void setUrl(URL value){this.url=value;}
  42. public URL getUrl(){return this.url;}
  43. //Connexion
  44. public void setConnexion(URLConnection value){this.connexion=value;}
  45. public URLConnection getConnexion(){return this.connexion;}
  46. //Entrant
  47. public void setEntrant(BufferedReader value){this.entrant=value;}
  48. public BufferedReader getEntrant(){return this.entrant;}
  49. //Sorant
  50. public void setSortant(OutputStreamWriter value){this.sortant=value;}
  51. public OutputStreamWriter getSortant(){return this.sortant;}
  52. //Données
  53. public void setDonnees(ArrayList<ParametreUrl> value){this.donnees=value;}
  54. public ArrayList<ParametreUrl> getDonnees(){return this.donnees;}
  55. }
 
Code :
  1. package controleur;
  2. import java.io.IOException;
  3. import java.io.OutputStreamWriter;
  4. import java.net.URL;
  5. import java.security.AccessControlException;
  6. import java.util.*;
  7. import javax.swing.JLabel;
  8. public class Post extends Requeteur{
  9. public Post(String serveur){
  10.  super(serveur);
  11. }
  12. @SuppressWarnings("unused" )
  13. private void Init(String page,ArrayList<ParametreUrl> donnees) throws AccessControlException, IOException{
  14.  this.setPage(page);
  15.  this.setUrl(new URL(this.getServeur()+this.getPage()));
  16.  this.setDonnees(donnees);
  17.  try{
  18.   this.connexion = this.url.openConnection();
  19.  }catch(AccessControlException e){applet.add(new JLabel(e.getMessage()));}
  20.  this.getConnexion().setDoOutput(true);
  21.  this.setSortant(new OutputStreamWriter(this.getConnexion().getOutputStream()));
  22.  this.getSortant().write(this.getEncodedDatas());
  23.  this.getSortant().flush();
  24.  this.getSortant().close();
  25. }
  26. private String getEncodedDatas(){
  27.  String retour="";
  28.  int i;
  29.  if(this.getDonnees().isEmpty()==false){
  30.   retour=this.getDonnees().get(0).getEncodedVariable()+"="+
  31.     this.getDonnees().get(0).getEncodedValeur();
  32.   for(i=1;i<this.getDonnees().size();i++){
  33.    retour+="&"+
  34.     this.getDonnees().get(0).getEncodedVariable()+"="+
  35.     this.getDonnees().get(0).getEncodedValeur();
  36.   }
  37.  }
  38.  return retour;
  39. }
  40. }
 
Code :
  1. package controleur;
  2. import java.io.IOException;
  3. import java.io.OutputStreamWriter;
  4. import java.net.URL;
  5. import java.security.AccessControlException;
  6. import java.util.*;
  7. import javax.swing.JLabel;
  8. public class Get extends Requeteur{
  9. public Get(String serveur){
  10.  super(serveur);
  11. }
  12. @SuppressWarnings("unused" )
  13. private void Init(String page,ArrayList<ParametreUrl> donnees) throws AccessControlException, IOException{
  14.  this.setPage(page);
  15.  this.setUrl(new URL(this.getServeur()+this.getPage()+this.getEncodedDatas()));
  16.  this.setDonnees(donnees);
  17.  try{
  18.   this.connexion = this.url.openConnection();
  19.  }catch(AccessControlException e){applet.add(new JLabel(e.getMessage()));}
  20.  this.getConnexion().setDoOutput(true);
  21.  this.setSortant(new OutputStreamWriter(this.getConnexion().getOutputStream()));
  22.  this.getSortant().flush();
  23.  this.getSortant().close();
  24. }
  25. private String getEncodedDatas(){
  26.  String retour="";
  27.  int i;
  28.  if(this.getDonnees().isEmpty()==false){
  29.   retour="?"+
  30.    this.getDonnees().get(0).getEncodedVariable()+"="+
  31.    this.getDonnees().get(0).getEncodedValeur();
  32.   for(i=1;i<this.getDonnees().size();i++){
  33.    retour+="&"+
  34.     this.getDonnees().get(0).getEncodedVariable()+"="+
  35.     this.getDonnees().get(0).getEncodedValeur();
  36.   }
  37.  }
  38.  return retour;
  39. }
  40. }
 
Code :
  1. package controleur;
  2. import java.io.IOException;
  3. import java.net.URLEncoder;
  4. public class ParametreUrl {
  5. private String Variable;
  6. private String Valeur;
  7. public ParametreUrl(String variable,String valeur){
  8.  this.setVariable(variable);this.setValeur(valeur);
  9. }
  10. //Variable
  11. public String getVariable(){return this.Variable;}
  12. public void setVariable(String value){this.Variable=value;}
  13. //Valeur
  14. public String getValeur(){return this.Valeur;}
  15. public void setValeur(String value){this.Valeur=value;}
  16. //Encodage
  17. public String getEncodedVariable(){
  18.  try{
  19.   return URLEncoder.encode(this.Variable,"ISO-8859-1" );
  20.  }catch(IOException e){return "";}
  21. }
  22. public String getEncodedValeur(){
  23.  try{
  24.   return URLEncoder.encode(this.Valeur,"ISO-8859-1" );
  25.  }catch(IOException e){return "";}
  26. }
  27. }
 

Voilà qui te permettra de gérer du get et du post normalement.
Pour les autres posters, dites moi si c'est vraiment de la merde, mais j'ai fait ça suite à plusieurs tutos.


Message édité par lordashram le 28-02-2008 à 14:27:25
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed