Question

Je suis en train de construire quelque chose de semblable à la fonctionnalité « Partager » Facebook pour mon site.

Je suis arrivé au point où je peux accepter une URL, gratter pour meta keywords et obtenir convenablement les titres / descriptions, mais je suis un peu coincé à la meilleure façon de déterminer les photos « probables » l'utilisateur peut à partager.

J'utilise actuellement la SimpleXMLElement de tourner la page dans un DOM traversable, et trouver toutes les balises, les transformant en URL absolues. Après cela, je ne sais pas comment je peux faire pour trouver une vignette appropriée.

Dois-je les télécharger, et aller par la taille du fichier? Dois-je utiliser une sorte de comme heuristique «a été rencontré au milieu de la page »?

Quelqu'un d'autre a des recommandations, des suggestions ou des conseils?

Était-ce utile?

La solution

J'ai écrit quelque chose de similaire il y a un certain temps pour obtenir des images de messages de blog raclées. Mes critères pour le choix d'une image a été quelque chose le long des lignes d'obtenir une liste de toutes les images sur la page, puis attribuer des « points prioritaires »:

  • Ignorer les images hébergées à partir d'une liste noire tirée de la liste AdBlocker
  • Ignorer images indirects, par exemple liés à partir de feuilles ou dans un IFRAME
  • Ignorer les images de moins de 50 pixels de large ou élevé
  • Ignorer les images qui se répètent plus d'une fois
  • Attribuer des points prioritaires aux images hébergées d'une liste blanche des hôtes (par exemple, Photobucket, imageshack.us)
  • Attribuer des points prioritaires aux 3 plus grandes images sur la page
  • Attribuer des points prioritaires aux images sur le même hôte
  • Attribuer points de priorité des images avec une balise ALT définie
  • Attribuer des points prioritaires aux images apparaissant dans une balise P

Ensuite, choisissez celui avec les points les plus prioritaires. Il était certainement pas à toute épreuve ou trop scientifique, mais il a quelque chose de beaucoup plus souvent utile que non.

Autres conseils

Je n'ai aucune expérience directe faisant cela, donc je ne suis pas sûr qu'il y ait une meilleure pratique spécifique, mais en général, je pense qu'une approche heuristique regardant plusieurs facteurs serait logique en raison de la variabilité dans les implémentations de trouver le site .

Je regardais deux ensembles d'éléments:. Propriétés de l'image et le contexte du où / comment sont placés les images

Propriétés de l'image:

  • Largeur et seuils minimaux rencontrent la hauteur
  • Rapport d'image est (images d'arrière-plan que la tuile peut avoir des rapports d'aspect extrêmes, ce qui fournit une bonne indication que l'image peut ne pas convenir) raisonnables
  • Plus d'une couleur existe dans l'image (plus difficile à détecter, mais peut éviter différentes images de fond)

Image Contexte:

  • L'image ne se répète pas à la page (ce qui évite l'aide d'icônes et d'autres éléments de conception qui peuvent répéter)
  • Se produit après h1, h2, etc balises à la page; cela devient votre point sur les images provenant du milieu de la page, en évitant à nouveau les éléments de conception.
  • A une balise alt (bien que cela ne soit pas toujours utilisé, ne donc peut-être fournir pas beaucoup d'informations utiles)

Je voudrais attribue des poids aux éléments précédents, puis classer les images que vous trouverez selon la façon dont chaque image satisfait aux règles.

Notez également que certaines pages peuvent utiliser CSS (ou Flash, etc) pour afficher des images. Ces notre extérieur de votre ressort d'images (selon l'algorithme que vous avez défini); peut-être pas une grosse affaire, mais quelque chose à prendre en considération.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top