34 votes

Algorithme de type Instapaper

Est-ce que quelqu'un d'un algorithme qui extrait le contenu d'une page Web? comme instapaper ?

49voto

Joel Points 11003

Il y a deux étapes pour ce Instapaper n':

  1. Trouver la main le contenu du bloc sur la page (à l'exclusion des en-têtes, pieds de page, les menus, etc)
  2. À partir de ce bloc de contenu de l'extrait et le format du texte

Afin de trouver le bloc de contenu (typiquement quelques html élément de bloc, comme un div contenant la clé de texte de la page de contenu) Instapaper utilise un algorithme comme celui utilisé par la lisibilité. Vous pouvez regarder la source de readability.js pour voir ce qu'il se passe, mais à la base il essaie de trouver la zone de la page avec le plus de texte/lien ratio, même s'il possède quelques autres de simples paramètres de notation (par exemple sur le dessus de ma tête, des choses comme le ratio texte / des virgules, des éléments para etc) qui vont dans les heuristiques.

Une fois que vous avez identifié le nœud racine de l'élément, avec du contenu pertinent, vous devez le formater, si vous le souhaitez, vous pouvez simplement tirer sur le nœud de l'élément contenant le texte de la source du document et de l'insérer dans la vôtre, mais en réalité, vous aurez probablement envie de supprimer des styles existants et de les appliquer à votre propre, pour une apparence standard. Si vous voulez sortir aussi beau uniquement de texte, vous pouvez utiliser Jéricho du moteur de Rendu.

update1: je devrais aussi mentionner quelque chose d'autre Instapaper n' - qui est la suite de "pagination" liens (le "prochain" ou "1", "2", "3" des liens) de l'article à leur conclusion, de sorte qu'une pièce qui peut s'étendre sur plusieurs pages de l'original sera rendu à vous en un seul document.

update2 je suis récemment tombé sur cette comparaison des algorithmes d'extraction de texte

6voto

James Points 3490

il existe une application open source qui analyse le texte d'un article à partir de n'importe quelle page Web

https://github.com/jiminoc/goose/wiki

devrait faire l'affaire

3voto

temo Points 31

http://cln.me fait cela. Leur api est très simple et fournit:

  1. html nettoyé
  2. texte à l'intérieur de la page
  3. images dans la page
  4. vidéos dans la page

tout ce dont vous avez besoin pour implémenter votre propre contenu propre.

2voto

simbo1905 Points 911

Chaudière est open source java. l'algorithme est publié dans un article scientifique afin que vous puissiez lire ses performances par rapport à d'autres algorithmes. lire autour d'elle semble être l'un des meilleurs.

1voto

Kimvais Points 12453

Si vous voulez juste tout le contenu et aucun formatage en Python

 >>> from BeautifulSoup import BeautifulSoup
>>> from urllib import urlopen
>>> soup = BeautifulSoup(urlopen("http://www.python.org/").read())
>>> contents = ''.join(soup.findAll(text=True))
 

fait l'affaire

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