2010-01-14 20 views
0

Je souhaite ouvrir une page Web (dont l'URL est l'argument de la ligne de commande), puis enregistrer le contenu de cette page en tant que fichier .txt. Rappelez-vous, j'ai besoin du fichier .txt et non de la source de la page Web.Comment faire pour "Enregistrer sous" sur IE (Internet Explorer) automatiquement?

J'ai essayé ma main avec du sélénium et cela fonctionne très bien. Mais maintenant, je veux quelque chose qui n'ouvre pas le vrai navigateur comme l'ouverture du navigateur et le chargement d'une page est une tâche qui prend du temps.

Je veux le faire en Java. Par contenu, je veux dire le texte (sans majoration) que nous obtenons lorsque nous sauvegardons une page Web dans Internet Explorer en sélectionnant "Enregistrer sous" puis en sélectionnant ".txt" comme format de sortie du fichier.

+0

Que voulez-vous dire par le 'contenu'? Voulez-vous supprimer les balises HTML ou simplement enregistrer le fichier HTML en tant que fichier .txt? – Earlz

Répondre

3

Si je comprends bien votre question, vous voulez rendre la page et copier le texte rendu sans utiliser de navigateur.

Pour cela, vous aurez besoin d'un navigateur sans écran. HTMLUnit serait un bon choix.

Pour obtenir le contenu du texte, vous pouvez le faire comme ça (non testé):

WebClient c = new WebClient(BrowserVersion.INTERNET_EXPLORER_6); 
TextPage tp = c.getPage("yoururl"); 
String content = tp.getContent(); 

(voir Javadoc)

+0

Oui, vous avez bien compris ma question. J'ai ouvert la page Web dans ce navigateur sans tête fourni par HTMLUnit. Mais maintenant, je ne sais pas comment enregistrer la HtmlPage pour sortir le fichier désiré. –

+0

j'ai ajouté un exemple de code) –

+0

Oui, je l'ai vu et essayé. Il lance quelques exceptions et essaie de trouver la cause ... Merci pour ça. –

-1

Hmm, je dirais même code à partir de zéro, ne semble pas comme une chose complexe et peut-être pas même la peine d'ajouter une dépendance à une autre bibliothèque à votre projet:

  • Ouvrez un URLConnection à cette URL
  • Obtenez un flux à partir de la connexion, appliquez regex pour supprimer tout le code HTML des données. Si la page ne doit pas être trop grande pour vos besoins en mémoire :) lisez la page dans une chaîne puis appliquez l'expression régulière. Alternativement, donnez un shoot à ce qui est décrit here (je n'ai pas d'expérience avec la façon décrite ici si).
  • Enregistrer la sortie dans un txt.