Get source de site web en java
Je voudrais utiliser java pour obtenir le code source d'un site internet (sécurisé) et ensuite d'analyser ce site web pour les liens qui sont en elle. J'ai trouvé comment faire pour se connecter à l'url, mais alors, comment puis-je obtenir facilement juste la source, preferraby que le DOM Document oso que je pourrais facilement obtenir les informations que je veux.
Ou est-il une meilleure façon de se connecter au site en https, obtenir le code source (que je neet faire pour obtenir une table de données...c'est assez simple) alors ces liens sont des fichiers, je vais le télécharger.
Je voudrais qu'il était FTP, mais ce sont des fichiers stockés sur mon tivo (je veux par programme à télécharger sur mon ordinateur(
OriginalL'auteur Adam Lerman | 2009-01-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir à faible niveau et il suffit de demander avec un socket. En java, il ressemble à
J'aime votre réponse le meilleur et le plan de l'essayer demain. Si cela fonctionne, je vais l'accepter. Seule question est comment puis-je envoyer un nom d'utilisateur et le mot de passe?
Hey Adam. Ce code se connecte à un site HTTPS (Sécurisé) sur le site avec le protocole SSL. Nom d'utilisateur/mots de passe sont spécifiques à un site. C'est presque comme demander comment se connecter à la Banque de l'Amérique et espérer qu'il fonctionne avec WaMu de connexion c'est différent. J'espère que vous vous accepter ma réponse comme correcte, car son ce que vous avez demandé.
OriginalL'auteur Bernie Perez
Extrêmement questions similaires:
OriginalL'auteur matt b
Probablement vous pourriez obtenir un meilleur affichage des trésors. de Pete ou sktrdie options. Voici un moyen supplémentaire si vous voulez savoir comment le faire "en avait"
Je ne suis pas très bon à la regex donc, dans ce cas, elle renvoie le dernier maillon d'une ligne. Eh bien, c'est un début.
MODIFIER
Ooops j'ai totalement raté le "secure" partie. De toute façon je ne pouvais pas m'en empêcher, j'ai dû écrire cet exemple 😛
Haha d'accord. Ouais je vais utiliser votre RegEx dans mon exemple, si vous n'avez pas l'esprit.
Pas du tout, aller de l'avant. Il ne fonctionne pas très bien.
OriginalL'auteur OscarRyz
Essayer HttpUnit ou HttpClient. Bien que l'ancienne est ostensiblement pour l'écriture de tests d'intégration, il a une pratique de l'API pour par programme une itération à travers une page web, les liens, avec quelque chose comme la suite de l'utilisation de WebResponse.getLinks():
N'abusez pas de l'objectif. Interface htmlunit est une bibliothèque spécialisée pour faire des tests unitaires.
Je ne sais pas quelle interface htmlunit mais est liée à l'URL, interface htmlunit dit que c'est un "navigateur pour les programmes Java" dans la première para et dans les listes d'utilisations typiques des "fins de test ou de récupérer des informations à partir de sites web". Je ne vois pas ce qu'Adam veut que contredire cette utilisation typique.
OriginalL'auteur Peter Hilton
Vous pouvez utiliser javacurl pour obtenir le site du html, et java DOM pour l'analyser.
OriginalL'auteur Luca Matteis
Essayez d'utiliser le jsoup bibliothèque.
Vous pouvez télécharger le jsoup bibliothèque ici.
OriginalL'auteur optimus0127
Il y a deux significations de la source dans un contexte web:
La source HTML: Si vous demandez une page web par URL, vous obtenez toujours le code source HTML. En fait, il n'y a rien d'autre que vous pourriez obtenir à partir de l'URL. Les pages web sont toujours transmises sous forme de code source, il n'y a pas une telle chose comme un compilé page web. Et pour ce que vous essayez, cela devrait être suffisant pour remplir votre tâche.
À la Source du Script: Si la page web est généré dynamiquement, alors il est codé dans certains langage de script côté serveur (comme PHP, Ruby, JSP...). Il y a aussi existe un code source à ce niveau. Mais à l'aide d'une connexion HTTP vous n'êtes pas en mesure d'obtenir ce genre de code source. Ce n'est pas un fonctionnalité manquante mais complètement à la fin.
Analyse: Ayant cela dit, vous devez en quelque sorte analyser le code HTML. Si vous avez juste besoin de la des liens, à l'aide d'une RegEx (comme Oscar Reyes a montré) sera la méthode la plus pratique, mais vous pouvez également écrire un simple analyseur "manuellement". Il est lent, plus de code... mais qui fonctionne.
Si vous souhaitez accéder à ce code sur un plus au niveau logique, l'analyse à un DOM serait la voie à suivre. Si le code est valide XHTML vous pouvez simplement analyser pour un org.le w3c.dom.Document et faire quelque chose avec elle. Si elle est au moins HTML valide vous pouvez appliquer quelques astuces pour le convertir en XHTML (dans certains cas rares, en remplacement de <br> par <br/>, et de changer le doctype est assez) et l'utiliser comme XML.
Si il n'est pas valide XML, vous auriez besoin d'un HTML DOM parser. Je n'ai aucune idée si une telle chose existe pour Java et si elle effectue nice.
OriginalL'auteur Lena Schimmel
Il existe serveur FTP qui peut être installé sur votre Tivo pour permettre de montrer les téléchargements, voir ici http://dvrpedia.com/MFS_FTP
La question est formulée différemment (comment gérer http/html en java), mais à la fin vous parler de ce que vous voulez, c'est de télécharger des émissions. Tivo utilise le système de fichier unique (MFS - Médias du Système de Fichiers) de leur propre, de sorte qu'il n'est pas facile de monter le disque sur une autre machine - au contraire, il est plus facile de courir serveur http ou ftp sur le Tivo et de la télécharger à partir de ces
OriginalL'auteur Nas Banov