Quiero aprender a extraer datos de un sitio web. ¿Donde debería empezar?

¡Solo por hacerlo! Comience con poco y amplíe su proyecto cada vez en pequeños pasos.

Primero decida qué herramienta de raspado le gusta usar, probablemente en función de la disponibilidad para su lenguaje de programación deseado. El raspador que uso es Selenium dentro de R. Aprendí los conceptos básicos de este sitio web, Cómo manejar un navegador web con R (y RSelenium) combinado con otros tutoriales. El selenio es un complemento para R que puede raspar. También puedes usar este rascador con Python y Java si te gusta más.

Elija un sitio web con información aleatoria. Me gustan especialmente los sitios web con números. Por ejemplo, información sobre acciones o tasas hipotecarias. Elija un sitio web con la información que desea obtener. Este ejemplo es con información sobre acciones de yahoo finance.

  1. Deje que su raspador abra la página web que necesita Trending Tickers – Yahoo Finanzas
  2. Elimine una lista que contiene información sobre lo que desea eliminar, por ejemplo, una lista con tickers con los enlaces correspondientes a esos tickers.
  3. Ponga el nombre del ticker en una bonita mesa, acompañado de su enlace.
  4. Abra el enlace para cada ticker y raspe la información que le parezca interesante.
  5. Poner los datos en una tabla.
  6. Revisa todos los tickers usando un bucle.
  7. ¡Expanda esto aún más!
  8. Práctica práctica práctica.

Acabo de terminar el rastreo web para varios sitios web. Puedo dar algunas sugerencias sobre cómo comenzar este trabajo.

Hay varias formas de extraer datos de un sitio web específico. Pero recomiendo usar Python para hacer esto. Basado en Python, le mostraré el enfoque y las herramientas correspondientes que puede usar.

  1. Obtenga el enlace de la URL a una página web y analice el contenido, luego puede guardar los datos que desee.
  1. Solicitudes + Sopa hermosa + regex
  2. urllib2 + Sopa hermosa + regex (mi forma favorita)
  • Utiliza el webdriver de selenio
    1. Use selenium webdriver para abrir la página web y guardar la información deseada (fácil, directo pero inestable, lo odio por cierto)
  • Usa el pyspider para rastrear datos
    1. pyspider es un sistema de rastreo web basado en la web, es fácil de aprender y estudiar, pero también tiene un precio que a veces simplemente no sabes qué tiene de malo
  • La herramienta más poderosa es scrapy
    1. Con scrapy, puede hacer un sistema distribuido para rastrear los datos y es la forma más fácil de evitar el bloqueo, ya que puede usar el sistema distribuido, el grupo de cookies o incluso el grupo de nombres de usuario para programar su rastreador. Sin embargo, puede llevar mucho más tiempo aprender a manipularlo.

    Yo mismo he experimentado con estos cuatro enfoques. Me encanta usar urllib2 y regex porque son simples y estúpidas. En este momento hay muchos mecanismos implementados en los sitios web en contra de la hermosa sopa y las solicitudes. De todos modos, el rastreo web es divertido y doloroso. Lo disfruto mucho y planeo probarlo en Quora. Espero que mi respuesta pueda ayudarte.

    Literalmente estoy raspando datos, desplazándome por miles de páginas mientras escribo esta respuesta 🙂

    Como usted dijo “por dónde empiezo” , creo que debería comenzar con un ejemplo simple y avanzar desde allí. Si usa python, las bibliotecas urllib son muy útiles para este propósito. Hay un tutorial simple y completo con script y explicación en este enlace: cs109 / 2015lab2

    ¡Buena suerte!

    More Interesting

    ¿Cómo deberías comenzar una carrera en aprendizaje profundo?

    Mi algoritmo de ML, escrito en Python, está casi completo. Quiero que sea un sitio web. ¿Cuál es la mejor manera de conectar mi script Python a Meteor?

    Cómo extraer términos importantes de datos de texto no estructurados

    ¿Es posible aplicar las técnicas de N-gram para el análisis de sentimientos?

    ¿Cuál es el significado de la investigación de OpenAI sobre estrategias de evolución y el hallazgo de que rivalizan con el desempeño del aprendizaje por refuerzo?

    ¿Cuáles son las opiniones de Yoshua Bengio sobre Kaggle y el aprendizaje automático competitivo en general?

    ¿Cuáles son algunas bibliotecas de software para el aprendizaje a gran escala?

    ¿Por qué elegiría algoritmos de selección de características sobre la reducción dimensional?

    ¿Una red neuronal necesita un nodo de salida para cada cosa que pueda clasificar?

    En su opinión, ¿la sugerencia de lectura recomendada basada en la actividad de navegación de los usuarios de Wikipedia mejorará la genialidad del sitio?

    ¿Qué es un núcleo universal en el contexto del aprendizaje automático?

    ¿Cuáles son algunos de los temas candentes que se están investigando actualmente en la escucha de máquinas / procesamiento de audio?

    ¿Cuál es una buena manera de entender esta optimización mediante el uso de un multiplicador lagrangiano?

    ¿Cómo afectarán herramientas como BigML y Google Prediction API al aprendizaje automático? ¿Reducirá la demanda de científicos de datos?

    ¿Qué es la optimización submodular?