Pregunta

Esto podría ser una de esas preguntas que son difíciles de contestar, pero aquí va:

no considero mi auto programador - pero me gusta :-) He aprendido R, porque estaba enfermo y cansado de SPSS, y porque un amigo me introdujo en el lenguaje - por lo que no soy una completo ajeno a la lógica de programación.

Ahora me gustaría aprender Python -. Principalmente a hacer de pantalla de raspado y análisis de textos, sino también para la escritura de aplicaciones web con los pilones o Django

Así que: ¿Cómo debo ir sobre el aprendizaje para raspar pantalla con Python? Empecé a ir a través de la rudimentario docs pero me siento mucho "mágica" que está pasando - después de todo -. estoy tratando de aprender, no sólo hacer

Por otro lado: No hay ninguna razón para reinventar la rueda, y si es Scrapy a la pantalla raspando lo que Django es a las páginas web, a continuación, después de todo podría valer la pena saltar directamente a Scrapy. ¿Qué opinas?

Oh - Por cierto: El tipo de pantalla raspado: Quiero sitios de periódicos de raspado (es decir, bastante complejo y grande) para las menciones de los políticos, etc. - Eso significa que necesitaré para raspar al día, de forma incremental y de forma recursiva - y necesito registrar los resultados en una base de datos de clase - que me llevan a una pregunta extra: Todo el mundo está hablando de nonSQL DB. Debería aprender a usar, por ejemplo, MongoDB inmediato (no creo que necesito consistencia fuerte), o es que tonto por lo que yo quiero hacer?

Gracias por cualquier pensamiento - y me disculpo si esto es a lo general para ser considerada una cuestión de programación

.
¿Fue útil?

Solución

Estoy de acuerdo que los documentos Scrapy emiten esa impresión. Sin embargo, creo que, como descubrí por mí mismo, que si usted es paciente con Scrapy, e ir a través de los tutoriales en primer lugar, y luego enterrar a ti mismo en el resto de la documentación, que no sólo se comienza a entender las diferentes partes a Scrapy mejor , pero usted podrá apreciar por qué hace lo que hace de la manera que lo hace. Es un marco para la escritura de las arañas y los raspadores de pantalla en el sentido real de un marco. Usted todavía tendrá que aprender XPath, pero me parece que lo mejor es aprender independientemente. Después de todo, tienen la intención de raspar sitios web, y una comprensión de lo que XPath es y cómo funciona sólo se va a facilitar las cosas para usted.

Una vez que tenga, por ejemplo, comprendido el concepto de pipelines en Scrapy, usted será capaz de apreciar lo fácil que es hacer todo tipo de cosas con los objetos desechados, incluyendo su almacenamiento en una base de datos.

BeautifulSoup es una maravillosa biblioteca de Python que se puede utilizar para raspar sitios web. Pero, a diferencia de Scrapy, no es un marco por cualquier medio. Para proyectos más pequeños en los que no hay que invertir tiempo en escribir una araña adecuada y tener que lidiar con el desguace de una cantidad buena de los datos, se puede llegar a funcionar con BeautifulSoup. Pero para todo lo demás, sólo empezar a apreciar el tipo de cosas Scrapy proporciona.

Otros consejos

Las apariencias como Scrappy está utilizando XPath DOM recorrido, que es un lenguaje en sí mismo y puede sentirse un poco críptica durante algún tiempo. Creo BeautifulSoup le dará un inicio más rápido. Con lxml que tendrá que invertir más tiempo en aprender, pero generalmente se considera (no sólo por mí) una mejor alternativa a BeautifulSoup.

En la base de datos te sugeriría que empezar con SQLite y utilizarlo hasta llegar a una pared y necesita algo más escalable (que nunca puede ocurrir, dependiendo de lo lejos que quiere ir con eso), momento en el que se le sabe qué tipo de almacenamiento que necesita. Mongodb es sin duda una exageración en este punto, pero conseguir cómodo con SQL es una habilidad muy útil.

Este es un ejemplo de cinco líneas que di hace algún tiempo para ilustrar azada BeautifulSoup se puede utilizar. ¿Cuál es el mejor lenguaje de programación escribir un web bot?

A mi me gusta BeautifulSoup. Soy bastante nuevo en Python, pero pareció bastante fácil para iniciar captura de imágenes. Escribí un breve tutorial sobre href="http://www.omerkhan.com/2012/06/screen-scraping-with-beautiful-soup/" raspando con hermosa sopa . Espero que ayude.

Por la parte de base de datos de la pregunta, utilice la herramienta adecuada para el trabajo. Averiguar lo que quiere hacer, forma en que desea organizar los datos, el tipo de acceso que necesita, etc. A continuación, decidir si una solución no-SQL funciona para su proyecto.

Creo que las soluciones no-SQL están aquí para quedarse por una variedad de aplicaciones diferentes. Los hemos implementado en varios proyectos que he trabajado en los últimos 20 años en el interior de las bases de datos SQL sin doblaje no-SQL de modo existen las aplicaciones. Así que vale la pena al menos conseguir algunos antecedentes sobre lo que ofrecen y qué productos están funcionando bien hasta la fecha.

El diseño de su proyecto bien, y mantener la capa de persistencia separado, y usted debería ser capaz de cambiar su solución de base de datos con dolor de menor importancia si se decide que es lo que es necesario.

Yo recomiendo empezar nivel inferior mientras se aprende - scrapy es un marco de alto nivel. Leer un buen libro de Python como Inmersión en Python entonces mirar a lxml de análisis de HTML.

antes de sumergirse en Scrapy tomar introducción de Udacity a la Informática: https://www.udacity.com/course / CS101

Esto es una gran manera de familiarizarse con Python y en realidad se va a aprender mucho más rápido Scrapy una vez que tenga algunos conocimientos básicos de Python.

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