Scraping Blogs por diversión y beneficio

Matías Jiménez
Matías Jiménez

A veces, cuando está trabajando en un problema, se le arroja una solución directamente a la cara. Nos encontramos en esta misma situación hace unos días, armando la nueva edición retro de La-Tecnologia; Se necesitaba una forma de seleccionar un artículo aleatorio de La-Tecnologia y [Alexander van Teijlingen] de codepanel.net acaba de darnos la solución.

Para obtener todas las URL de La-Tecnologia, [Alex] escribió un pequeño script de Python usando la biblioteca de scraping de Beautiful Soup. El programa comienza en la página principal de La-Tecnologia y toma todos los enlaces a una publicación de La-Tecnologia antes de pasar a la página siguiente. No es un edificio terriblemente complejo, pero una solución a un problema en el que estamos trabajando aparecerá mágicamente en nuestro buzón.

Gracias a [Alex], Escribir cron job para actualizar automáticamente nuestra nueva edición retro fue mucho más fácil. Si desea consultar una lista de todas las publicaciones de La-Tecnologia (o al menos hace dos días), puede obtener un archivo de texto de 10,693 líneas aquí.

  • RobinJood dice:

    No desprecies esto, pero hay muchos programas que hacen lo mismo. Muchos de ellos son de código abierto y / o gratuitos.

    ¿Has probado google?

  • Oliver Heaviside dice:

    Brian y Lords of La-Tecnologia relacionados:

    Últimamente he notado un número creciente de publicaciones sin conexión en hilos. ¿Quizás el foro estaba roto?

    Estas publicaciones no están fuera de tema como en I-hate-X o las publicaciones de ese era el estilo en mi día, sino publicaciones que hablan sobre algo que podría pertenecer a HAD pero que no tienen relevancia potencial para el hilo en mano. Por ejemplo:

    https://la-tecnologia.com/2012/06/12/la-tecnologia-links-june-12-2012/comment-page-1/#comment-680010

    Este es un post que habla del ónix, en una historia reciente que no tiene nada que ver con él. Me preguntaba si se trata de una configuración de spammer o si tiene un sistema de indexación roto que bloquea las publicaciones en el hilo incorrecto.

    Los spammers a menudo establecen un historial en un sitio web durante unos meses antes de comenzar a agregar enlaces sutiles.

    Le insto a que haga copias de seguridad completas y completas de sus bases de datos y las copie de la web: todos los sitios sociales, desde slashdot hasta stack exchange, parecen haber tenido problemas uno tras otro con los mismos problemas y al menos una corrupción importante de la base de datos que se ha perdido. mucha información.

    PD: Buena suerte con el proceso de monetización, espero que HAD lo haya logrado y pagará por todos sus esfuerzos.

    • Caleb Kraft dice:

      Interesante.

      solo una explicación, no agregamos dinero. Vivimos de acuerdo con los anuncios discretos que tenemos. No te preocupes. ¡La única forma en que podemos conseguir más es conseguir más lectores!

  • GarethC dice:

    ¿Hay alguna razón por la que no puede simplemente mirar el número de entradas en su base de datos, generar un número aleatorio en ese rango y luego mostrar ese artículo?

    ¿Me estoy perdiendo de algo?

  • John Bokma dice:

    Parece funcionar mucho en datos que deben ser extraíbles de su base de datos, asumiendo que está usando una base de datos (de lo contrario, solo ejecuta un pequeño script sobre su fs).

    • Deg dice:

      En realidad, mira la parte inferior de la página:
      Desarrollado por WordPress.com VIP

      WordPress usa MySQL. ¡Será bastante fácil consultar eso para obtener una lista de publicaciones!

  • soopergooman dice:

    hay que enviarle una camiseta y botones y pegatinas.

  • Eliot dice:

    http://codex.wordpress.org/Function_Reference/get_posts#Random_posts

    También es un VIP de WordPress; simplemente registre un ticket de soporte.

    • Caleb Kraft dice:

      un sitio web retro está en otro servidor. aunque no lo he confirmado, dudo que VIP se sienta inclinado a permitirnos conectarnos a su Mysql de forma remota. Además, el sitio web retro tiene un propósito muy específico que creo que cumple con la estática. Más que eso, simplemente hay un glaseado en el pastel.

      • metai dice:

        Todavía no hay necesidad de lidiar con la fuerza bruta sobre el HTML.

        Si simplemente exporta todas las publicaciones a la vez (o al menos manualmente), WordPress ofrece una función de exportación conveniente. Analice el XML resultante para enlaces persistentes, listo.

        Si desea hacer esto con regularidad, incluso automáticamente, violar cientos de páginas HTML es una solución aún peor. Algunas adiciones muy pequeñas al tema de la-tecnologia permitirían a la-tecnologia retro recuperar (y almacenar en caché) todas o seleccionar páginas utilizando un flujo JSON o XML especial del sitio web principal. Esto incluso calificaría como un patrón de “piratería”, hasta cierto punto.

        • Brian Benchoff dice:

          Ahora tengo el XML HaD exportado frente a mí, y * sí *, es posible, pero creo que puedo hacer cosas más interesantes al violar el HTML.

          Utilizo un script de Python para extraer las publicaciones únicas reales de cada publicación de HaD (y así obtener el texto completo de cada publicación de HaD en cualquier momento). Estos vienen en archivos HTML únicos, por lo que será REALMENTE fácil iniciar un script para actualizar automáticamente el sitio web retro.

          Una gran ventaja de hacerlo de esta manera es que tengo un archivo de texto completo de todo lo publicado en HaD. ¿Alguna vez te has preguntado cuándo fue la primera mención de Arduino? Te podré decir en unas horas.

          Publicaré todos estos datos esta semana. Debería ser interesante.

      • metai dice:

        ¿Hablas en serio ahora? ¿Prefiere en serio extraer una salida de front-end de miles de páginas web individuales a un archivo de datos categóricos de un solo lado, perfectamente formateado que contiene todo lo que contienen las páginas web y mucho más?

        Si quieres probar un concepto, de verdad, no hay nada que aprender aquí, casi todo el mundo es capaz de raspar sitios web (ya sea con Python, Perl, PHP … maldita sea, incluso un montón de pequeños scripts de shell). Ignorar que tiene acceso a los datos de origen demuestra solo una cosa: que puede ignorar que tiene acceso a los datos de origen.

        Sin embargo, si lo hace de esa manera porque no conoce WordPress y su API, déjeme una nota, estaré encantado de darle instrucciones.

  • Oliver Heaviside dice:

    ACERCA DEL SITIO RETRO ..

    Es posible que desee reemplazar el carácter que usa para los apóstrofos con la entidad html habitual, o simplemente usar el ‘normal’; algunos usuarios verán signos de interrogación en cadenas como “¿qué es esto?”

    En segundo lugar, una pitón, por mucho que me guste, puede que no sea la bestia para este trabajo. WordPress es php y puede mostrar historias aleatorias fácilmente con solo una consulta de mysql.

    En lugar de páginas aleatorias, ¿ha considerado simplemente sacar 5 historias en orden creciente desde el inicio del sitio?

    ¿Y tal vez comprobar el enlace para asegurarse de que exista? Muchos bits se pudren en el mundo de la piratería.

  • barryronaldo dice:

    ¿Con fines de lucro? Pensé que el “back tapping” es el pan y la mantequilla de la blogosfera jajaja. HaD no es malo en eso, pero BoingBoing es un delincuente terrible que tiene que pasar por cuatro “blogs hermanos” antes de llegar al artículo original, y todos obtienen su $ por clic. Me recuerda a un equipo de carreteras donde 4 personas están parados mirando a un tipo cavando un hoyo jajaja. ¿Por qué no pagarle a uno y enviar a los otros cuatro a programas de reducción de riesgos y adicción a las drogas?
    De todos modos, buena suerte con la última página 🙂 Espero poder volver a cuando menos mucho más 🙂

  • Christopher Mitchell dice:

    ¿Hay algo en el libro de reglas contra el uso de alguna forma de “SELECT * FROM article_db ORDER BY RAND () LIMIT 0.1” aplicable a la configuración de su base de datos? No veo por qué necesita raspar su propio sitio web para crear una base de datos de artículos.

    • Christopher Mitchell dice:

      Mis colegas tuvieron la amabilidad de mostrar la publicación de Caleb arriba. Con eso en mente, ¿no sería más fácil raspar el feed RSS? ¿O se trata de recopilar los archivos anteriores del sitio, en cuyo caso conservo algunas objeciones sarcásticas?

  • nes dice:

    Si incluyo un enlace en un comentario sobre HaD, usualmente después de unos minutos es raspado por un cliente extraño que se refiere a sí mismo como Safari 1.3 en Linux, resolución 30720 x 768. El bloque de direcciones pertenece a una demanda de alquiler de servidores en Tx.

    Este tipo de raspado de contenido no es inusual, solo que, obviamente, alguien pensó que era apropiado monitorear activamente las páginas de comentarios aquí, y no es Google. Quizás el propio WordPress lo hace por alguna razón.

    • Caleb Kraft dice:

      WordPress sí (kismet, también el escáner de spam).

  • nes dice:

    Ah, ya veo. Eso es bastante justo. Sin embargo, me pregunto por qué la combinación poco probable de sistema operativo, cliente y resolución.

  • José dice:

    Creo que se repite. Utilice el CMS, no la fuerza bruta. ¿Dice que no desea que el otro sitio se conecte a su base de datos? ¿Por qué no exportar la lista de URL? Puede hacerlo desde la línea de comandos con un comando. Acceso incorrecto al problema incorrecto.

    Oh, demonios, haz un servicio público que sirva URL de HaD aleatorias y deja que tus servidores y otros lo usen.

  • bunedoggle dice:

    while language == ”Python”:
    espacio en blanco = “de repente importa”
    corchetes = “especialmente faltante”
    punto y coma.
    tristeza ++

    • anonumus dice:

      ¿Cómo … +1

  • Un dron dice:

    PERL

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *