55 votes

exploration de données - comment identifier le contenu principal d'une page Web

Étant donné une page Web d'article de nouvelles (à partir de n'importe quelle source de nouvelles majeure telle que Times ou Bloomberg), je veux identifier le contenu principal de l'article sur cette page et jeter les autres éléments divers tels que les publicités, les menus, les barres latérales, les commentaires des utilisateurs.

Quelle est une façon générique de faire cela qui fonctionnera sur la plupart des principaux sites d'actualités?

Quels sont les bons outils ou bibliothèques pour l'exploration de données? (de préférence basé sur python)

33voto

gte525u Points 1431

Il y a un certain nombre de façons de le faire, mais, pas toujours. Voici les deux plus simple:

  • si c'est un ensemble fini de sites web: dans votre grattoir convertir chaque url à partir de la normale url à l'impression d'url pour un site donné (on ne peut pas vraiment être généralisée sur l'ensemble des sites)
  • Utiliser le arc90 la lisibilité de l'algorithme de référence de mise en œuvre est en javascript) http://code.google.com/p/arc90labs-readability/ . La version courte de cet algorithme est qu'il semble pour les divs avec les balises p en leur sein. Il ne fonctionne pas pour certains sites web, mais il est généralement assez bonne.

14voto

Cerin Points 9851

Il y a un moment, j'ai écrit un simple script Python pour cette tâche. Il utilise une heuristique de groupe de blocs de texte en fonction de leur profondeur dans les DOM. Le groupe avec le plus de texte est alors supposé être le contenu principal. Il n'est pas parfait, mais il fonctionne généralement bien pour les sites de nouvelles, où l'article est généralement le plus grand groupement de texte, même si elle est brisée en plusieurs div/p balises.

Il vous suffit d'utiliser le script comme: python webarticle2text.py <url>

13voto

Amber Points 159296

Il n'y a aucun moyen de faire cela qui est garanti de fonctionner, mais une stratégie que vous pourriez utiliser est d'essayer de trouver l'élément avec le texte le plus visible à l'intérieur.

9voto

JordanBelf Points 631

Diffbot propose une API gratuite (10 000 urls) pour ce faire, je ne sais pas si cette approche est ce que vous recherchez, mais cela pourrait aider quelqu'un http://www.diffbot.com/

6voto

nedk Points 635

Il pourrait être plus utile d'extraire les flux RSS ( <link type="application/rss+xml" href="..."/> ) sur cette page et d'analyser les données du flux pour obtenir le contenu principal.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X