Pergunta

Eu estou tentando construir algo semelhante a funcionalidade do Facebook "Share" para o meu site.

Eu tenho chegado ao ponto onde eu possa aceitar uma URL, raspá-lo para a meta palavras-chave e adequadamente obter títulos / descrições, mas estou um pouco preso quanto à melhor maneira de determinar 'provável' fotos o usuário pode quer ação.

Eu uso atualmente o SimpleXMLElement de virar a página em um DOM traversable, e encontrar todas as marcas, transformando-os em URLs absolutos. Depois disso, eu não sei como eu posso ir sobre encontrar uma miniatura adequado.

faço o download de todos eles, e ir pelo tamanho do arquivo? Eu usar algum tipo de heurística como, "foi encontrado no meio da página"?

Alguém tem alguma recomendação, sugestões ou dicas?

Foi útil?

Solução

Eu escrevi algo semelhante há um tempo atrás para obter imagens de posts raspados. Meus critérios para a escolha de uma imagem era algo ao longo das linhas de obter uma lista de todas as imagens na página, em seguida, atribuir 'pontos de prioridade':

  • Ignorar imagens hospedadas a partir de uma lista negra retirado lista de AdBlocker
  • Ignorar imagens indiretos, por exemplo ligada a partir de folhas de estilo ou em um IFRAME
  • Ignorar imagens com menos de 50 pixels de largura ou de alto
  • Ignorar imagens que se repetem mais de uma vez
  • Atribuir prioridade aponta para imagens hospedado a partir de uma lista branca de hospedeiros (por exemplo, Photobucket, imageshack.us)
  • Atribuir prioridade aponta para maiores de 3 imagens na página
  • Atribuir prioridade aponta para imagens no mesmo host
  • Atribuir prioridade aponta para imagens com uma tag ALT definidos
  • Atribuir prioridade aponta para imagens que aparecem em uma tag P

Em seguida, escolher aquele com o maior número de pontos prioritários. Certamente não era infalível ou excessivamente científico, mas tem algo de útil com muito mais freqüência do que não.

Outras dicas

Eu não tenho qualquer experiência direta de fazer isso, então eu não tenho certeza de que não há qualquer melhores práticas específicas, mas em geral eu acho que uma abordagem heurística olhando para vários fatores faria sentido por causa da variabilidade encontrada em implementações do Web site .

Eu olhava para dois conjuntos de itens:. Propriedades da imagem e do contexto da onde / como as imagens são colocadas

Propriedades da Imagem:

  • Largura e altura se encontram mínimo limiares
  • A proporção é razoável (imagens de fundo que azulejo podem ter relações de aspecto extremos, o que proporciona uma boa indicação de que a imagem pode não ser adequado)
  • existe mais de uma cor na imagem (mais difíceis de detectar, mas pode evitar várias imagens de fundo)

Contexto Image:

  • A imagem não se repita na página (Isso evita usando ícones e outros elementos de design que podem repetir)
  • Ocorre após H1, H2, etc marcas na página; isso fica ao seu ponto sobre as imagens que vem do meio da página, novamente evitando elementos de design.
  • Tem uma tag alt (embora isso não seja usado de forma consistente, por isso, talvez não fornece muita informação útil)

Eu atribui pesos aos itens anteriores e, em seguida, classificar as imagens que você encontra de acordo com o quão bem cada imagem satisfaz as regras.

Além disso, nota que algumas páginas poderão usar CSS (ou Flash, etc) para exibir imagens. Estes nosso fora de sua alçada de imagens (de acordo com o algoritmo que você definido); talvez não um grande negócio, mas algo a considerar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top