Necesito hacer un proyecto bastante extenso que involucre raspado web y estoy considerando usar Hpricot o Beautiful Soup (es decir, Ruby o Python). ¿Alguien ha encontrado un tutorial que pensaban que era particularmente bueno en este tema que me ayudaría a comenzar el proyecto con el pie derecho?¿Busca una recomendación de un buen tutorial sobre las mejores prácticas para un proyecto de raspado web?
Respuesta
Hay una excelente Railscasts episode en ScrAPI.
No es una herramienta, de verdad, pero una buena discusión es el libro de Michael Shrenk, Webbots, Spiders, and Screen Scrapers.
El libro tiene muy buen éxito en su misión declarada: explicar cómo construir bots web simples y operarlos de acuerdo con los estándares de la comunidad. No es todo lo que necesitas saber, pero es la mejor introducción que he visto. El foco está en bots simples de un solo hilo. Hay una pequeña mención sobre el uso de múltiples bots que almacenan datos en un repositorio central, pero no se discuten los problemas que implica escribir bots multiproceso o distribuidos que pueden procesar cientos de páginas por segundo.
Le recomiendo que lea este libro si está interesado en escribir Web bots, incluso si no está familiarizado con PHP o tiene la intención de hacerlo. Pero asegúrese de no esperar más que las ofertas del libro.
Para Ruby, el conjunto de herramientas para raspar web Scrubyt es excelente. Aquí está el an extensive introduction, que vale la pena leer incluso si va a utilizar alguna otra herramienta.
Examine el uso de lxml en lugar de BeautifulSoup. A pesar de su nombre, también es para analizar y raspar HTML. Es mucho, mucho más rápido que BeautifulSoup, e incluso maneja HTML "roto" mejor que BeautifulSoup (su reclamo de fama - lxml simplemente no es tan vocal al respecto). También tiene una API de compatibilidad para BeautifulSoup si no desea aprender la API lxml.
No hay ninguna razón para usar BeautifulSoup, a menos que esté en Google App Engine o algo en que no esté permitido nada que no sea puramente Python.
Tome un vistazo a las siguientes grabaciones de pantalla:
- http://railscasts.com/episodes/190-screen-scraping-with-nokogiri
- http://railscasts.com/episodes/191-mechanize
O si le gusta llanura, los correspondientes asciicasts:
- 1. Un buen proyecto de Swing para aprender las mejores prácticas
- 2. un buen ejemplo de las mejores prácticas
- 3. ¿Hay un buen tutorial sobre los scripts de MSBuild?
- 4. ¿Mejores prácticas para almacenar un sitio web ASP.NET en Subversion?
- 5. Sencha Touch - en busca de un buen tutorial/introducción a una aplicación de contenido
- 6. Mejores prácticas de construcción de un sitio web usando Node.js
- 7. Mejores prácticas para un solo proyecto SVN grande
- 8. ¿Algún buen tutorial sobre lilith (visor de registro para Logback)?
- 9. ¿Hay algún buen tutorial (ejemplo) para la unidad de prueba del proyecto base kohana?
- 10. Las mejores prácticas para el uso de los recursos en un proyecto WPF
- 11. ¿Existe un estándar de servicio web (API) o las mejores prácticas para los equipos de desarrolladores?
- 12. Buena recomendación tutorial de NHibernate ayuda
- 13. Mejores prácticas para (sobre) el uso de colas Azure
- 14. Cualquiera recomienda un buen tutorial sobre campos aleatorios condicionales
- 15. ¿Un buen y completo tutorial sobre la reflexión en .NET?
- 16. ¿Cuáles son algunas de las mejores prácticas para mantener múltiples versiones de un proyecto?
- 17. ¿Existe un buen tutorial sobre las pruebas automáticas de interfaz de usuario de cacao táctil?
- 18. Mejores prácticas para crear servicios web
- 19. Un buen tutorial/referencia de VML
- 20. Mejores prácticas para la implementación de aplicaciones web .NET
- 21. mejores prácticas de la aplicación web java
- 22. mejores prácticas de C++ para las constantes
- 23. Mejores prácticas para un servidor de almacenamiento de aplicaciones web (con un presupuesto)
- 24. Android SQLite Consejos sobre mejores prácticas
- 25. ¿Existe un buen tutorial completo sobre las transformaciones de análisis de Erlang disponibles?
- 26. ¿Mejores prácticas para internacionalizar aplicaciones web?
- 27. Extensiones de Firefox: mejores prácticas
- 28. Solr - consultas sobre todos los campos de las mejores prácticas
- 29. Doctrine 2: las mejores prácticas para i18n?
- 30. Configuración de aplicaciones web asp.net. Mejores prácticas
También hay una versión Ruby de Mechanize. –
Gracias por Scrapy. Parece genial – Alagu