Pregunta

Estoy escribiendo una aplicación especial similar a un rastreador que necesita recuperar el contenido principal de varias páginas. Solo para aclarar: necesito la verdadera carne. de la página (siempre que haya una, naturalmente)

He intentado varios enfoques:

  1. Muchas páginas tienen canales RSS, así que puedo leer el canal y obtener el contenido específico de esta página.
  2. Muchas páginas usan " contenido " metaetiquetas
  3. En muchos casos, el objeto presentado en el medio de la pantalla es el principal "contenido". de la página

Sin embargo, estos métodos no siempre funcionan, y he notado que Facebook hace un trabajo excelente haciendo exactamente esto (cuando quieres adjuntar un enlace, te muestran el contenido que han encontrado en la página de enlaces )

Entonces, ¿tiene algún consejo para mí sobre un enfoque que he pasado por alto?

¡Gracias!

¿Fue útil?

Solución

Realmente no hay una forma estándar para que las páginas web marquen "esta es la carne". La mayoría de las páginas ni siquiera quieren esto porque facilita el robo de su negocio principal. Entonces, realmente tiene que escribir un marco que pueda usar reglas por página para localizar el contenido que desee.

Otros consejos

Bueno, tu pregunta es un poco vaga aún. En la mayoría de los casos, un "rastreador" solo buscará datos en la web en formato de texto y los procesará para almacenamiento, análisis, etc. La " Captura de pantalla de Facebook " La cosa es una bestia completamente diferente.

Si solo está buscando un rastreador basado en web, hay varias bibliotecas que se pueden usar para atravesar el DOM de una página web con mucha facilidad y pueden obtener el contenido que está buscando.

Si está usando Python, pruebe Beautiful Soup Si usa Ruby, intente hpricot

Si desea procesar todo el contenido de una página web en una fecha posterior, simplemente obtenga y almacene todo debajo del " html " etiqueta.

Aquí hay un ejemplo de BeautifulSoup para eliminar todos los enlaces de una página:

require 'hpricot'
require 'open-uri'
doc = Hpricot(open("http://www.stackoverflow.com"))
(doc/"a").each do |link|
  puts link.attributes['href']
end

Editar: si va a obtener principalmente contenido de los mismos sitios (por ejemplo, la sección de comentarios de Reddit, preguntas de StackOverflow, enlaces Digg, etc.) puede codificar el formato de ellos para que su rastreador pueda decir, " ; Ok, estoy en Reddit, obtén todo con la clase de 'cosa'. También puede darle una lista de elementos predeterminados para buscar, como divs con clase / id de " main " ;, " content " ;, " center " ;, etc.

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