Pregunta

Estoy tratando de construir algo similar a la funcionalidad "Compartir" de Facebook para mi sitio web.

He llegado al punto en el que puedo aceptar una URL, raspar para palabras clave meta y adecuadamente conseguir títulos / descripciones, pero estoy un poco atascado en cuanto a la mejor manera de determinar probables '' fotos, el usuario puede quieren compartir.

Actualmente utilizo el SimpleXMLElement de pasar página en un DOM transitable, y encontrar todas las etiquetas, convirtiéndolos en direcciones URL absolutas. Después de eso, no estoy seguro de cómo me puedo ir sobre la búsqueda de una imagen en miniatura adecuado.

puedo descargar todos ellos, e ir por el tamaño del archivo? Cómo se utiliza algún tipo de heurística como, "fue encontrado en el medio de la página"?

¿Alguien más tiene alguna recomendación, sugerencias o consejos?

¿Fue útil?

Solución

he escrito algo similar hace un tiempo para obtener imágenes de las entradas del blog raspadas. Mi criterio para elegir una imagen fue algo en la línea de conseguir una lista de todas las imágenes de la página a continuación, asignar puntos prioritarios '':

  • No haga caso de las imágenes alojadas de una lista negra tomada de la lista de AdBlocker
  • Ignorar imágenes indirectos, por ejemplo, vinculados a partir de hojas de estilo o en un IFRAME
  • Ignorar imágenes menores de 50 píxeles de ancho o alto
  • No haga caso de las imágenes que se repiten más de una vez
  • Asignar puntos prioritarios a imágenes alojadas de una lista blanca de los ejércitos (por ejemplo, Photobucket, imageshack.us)
  • Asignar los puntos de prioridad a los mayores de 3 imágenes en la página
  • Asignar los puntos de prioridad a las imágenes en el mismo host
  • Asignar los puntos de prioridad a las imágenes con una etiqueta ALT definido
  • Asignar los puntos de prioridad a las imágenes que aparecen en una etiqueta P

A continuación, elija el que tiene los puntos más prioritarios. Ciertamente, no era a prueba de tontos o demasiado científica, pero tiene algo útil mucho más a menudo que no.

Otros consejos

No tengo ninguna experiencia directa de hacer esto así que no estoy seguro de que no hay ninguna mejor práctica específica, pero en general creo que un enfoque heurístico de mirar en varios factores tendría sentido debido a la variabilidad encontrada en las implementaciones de sitios web .

Me gustaría ver dos conjuntos de elementos:. La imagen Características del contexto y del dónde / cómo se colocan las imágenes

Propiedades de la imagen:

  • anchura y la altura cumplan los umbrales mínimos
  • relación de aspecto es razonables (imágenes de fondo que azulejo puede tener relaciones de aspecto extremas, que proporciona una buena indicación de que la imagen puede no ser adecuado)
  • Existe más de un color en la imagen (más difíciles de detectar, pero puede evitar varias imágenes de fondo)

Contexto de archivo:

  • Imagen no se repite en la página (esto evita el uso de iconos y otros elementos de diseño que pueden repetir)
  • Se produce después de H1, H2, etc etiquetas en la página; esto se pone a su punto acerca de las imágenes procedentes de la mitad de la página, de nuevo evitando elementos de diseño.
  • Tiene una etiqueta alt (aunque esto no se usan de manera habitual, por lo que quizá no proporciona mucha información útil)

Me asigna pesos a los artículos anteriores y luego clasificar las imágenes que se encuentran de acuerdo a qué tan bien cada imagen satisface las normas.

Además, tenga en cuenta que algunas páginas pueden utilizar CSS (o Flash, etc.) para mostrar las imágenes. Estos nuestra fuera de su ámbito de competencia de las imágenes (de acuerdo con el algoritmo que ha definido); tal vez no sea un gran problema, pero es algo a tener en cuenta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top