Idée: Ouvrez l'URL en tant que flux, puis HTML-analyser la chaîne dans sa description meta tag.
Grab contenu URL:
URL url = new URL("http://www.url-to-be-parsed.com/page.html");
BufferedReader in = new BufferedReader(
new InputStreamReader(
url.openStream()));
aura besoin de modifier le code ci-dessus en fonction de ce que votre parser HTML nécessite (un flux, cordes, etc.).
HTML-parse les tags:
<meta name="description" content="This is a place where webmasters can put a description about this web page" />
Vous pourriez également être intéressé par saisir le titre de cette page:
<title>This is the title of the page!</title>
Attention: Les expressions régulières ne semblent pas travailler de manière fiable sur les documents HTML, un HTML-parser est mieux.
Un exemple avec HTML Parser:
- Utilisez
HasAttributeFilter
pour filtrer par tags qui ont name="description"
attribut
- essayer un
Node
--->MetaTag
casting
- Obtenez le
content
en utilisant MetaTag.getAttribute()
code:
import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.tags.MetaTag;
public class HTMLParserTest {
public static void main(String... args) {
Parser parser = new Parser();
//<meta name="description" content="Some texte about the site." />
HasAttributeFilter filter = new HasAttributeFilter("name", "description");
try {
parser.setResource("http://www.youtube.com");
NodeList list = parser.parse(filter);
Node node = list.elementAt(0);
if (node instanceof MetaTag) {
MetaTag meta = (MetaTag) node;
String description = meta.getAttribute("content");
System.out.println(description);
// Prints: "YouTube is a place to discover, watch, upload and share videos."
}
} catch (ParserException e) {
e.printStackTrace();
}
}
}
Considérations:
Si cela se fait dans une JSP chaque fois que la page est chargée, vous pourriez obtenir un ralentissement en raison du réseau d'E/S à l'URL. Pire encore si vous le faites chaque fois à la volée pour une de vos pages qui contient beaucoup de liens URL, le ralentissement pourrait être énorme en raison de l'opération séquentielle de n URL. Peut-être que vous pouvez stocker ces informations dans une base de données et les actualiser au besoin au lieu de le faire à la volée dans les JSP.
:: Merci beaucoup pour votre réponse.Je veux extraire les informations de contenu de la balise meta.J'utilise html parser (http://htmlparser.sourceforge.net/samples.html). pourriez-vous s'il vous plaît m'aider .. – smartcode
Voilà. Ça m'a pris un moment pour faire le tour de leur API. Ça semble fonctionner comme ça. Comme je vais l'utiliser aussi, je vais mettre à jour si je trouve des moyens plus efficaces. – bakkal
:: Quelle belle réponse mon frère! Merci beaucoup ... passez une bonne journée! – smartcode