Me gustaría obtener las horas diarias de amanecer / atardecer desde un sitio web. ¿Es posible raspar contenido web con Python? ¿Cuáles son los módulos utilizados? ¿Hay algún tutorial disponible?
python
screen-scraping
eozzy
fuente
fuente
Respuestas:
Use urllib2 en combinación con la brillante biblioteca BeautifulSoup :
fuente
soup = BeautifulSoup(requests.get('http://example.com').text)
backticks
el código y lo convirtió en un enlace. ¡Gracias!Realmente recomiendo Scrapy.
Cita de una respuesta eliminada:
fuente
Reuní scripts de mi trabajo de raspado web en esta biblioteca de bit-bucket .
Script de ejemplo para su caso:
Salida:
fuente
Sugeriría encarecidamente visitar pyquery . Utiliza una sintaxis similar a jquery (también conocida como css) que hace que las cosas sean realmente fáciles para aquellos que provienen de ese entorno.
Para su caso, sería algo como:
Salida:
fuente
Puede usar urllib2 para realizar las solicitudes HTTP, y luego tendrá contenido web.
Puedes obtenerlo así:
Hermosa sopa es un analizador HTML de Python que se supone que es bueno para el raspado de pantalla.
En particular, aquí está su tutorial sobre el análisis de un documento HTML.
¡Buena suerte!
fuente
Yo uso una combinación de Scrapemark (encontrar urls - py2 ) y httlib2 (descarga de imágenes - py2 + 3). El scrapemark.py tiene 500 líneas de código, pero usa expresiones regulares, por lo que puede que no sea tan rápido, no se probó.
Ejemplo para raspar su sitio web:
Uso:
Resultado:
fuente
Haz tu vida más fácil usando
CSS Selectors
Sé que he llegado tarde a la fiesta, pero tengo una buena sugerencia para ti.
El uso
BeautifulSoup
ya se ha sugerido. Preferiría usarloCSS Selectors
para raspar datos dentro de HTMLfuente
Si pensamos en obtener el nombre de los elementos de cualquier categoría específica, entonces podemos hacerlo especificando el nombre de clase de esa categoría usando el selector css:
Estos son los resultados de búsqueda parciales:
fuente
Aquí hay un rastreador web simple, utilicé BeautifulSoup y buscaremos todos los enlaces (anclas) cuyo nombre de clase es _3NFO0d. Utilicé Flipkar.com, es una tienda minorista en línea.
fuente
Python tiene buenas opciones para raspar la web. El mejor con un marco es scrapy . Puede ser un poco complicado para los principiantes, así que aquí hay un poco de ayuda.
1. Instale Python por encima de 3.5 (los más bajos hasta 2.7 funcionarán).
2. Crear un entorno en conda (hice esto).
3. Instale scrapy en una ubicación y corra desde allí.
4.
Scrapy shell
le dará una interfaz interactiva para probar su código.5.
Scrapy startproject projectname
creará un marco.6.
Scrapy genspider spidername
creará una araña. Puedes crear tantas arañas como quieras. Al hacerlo, asegúrese de estar dentro del directorio del proyecto.La más fácil es usar las solicitudes y la hermosa sopa . Antes de comenzar, dé una hora de tiempo para revisar la documentación y resolverá la mayoría de sus dudas. BS4 ofrece una amplia gama de analizadores que puede elegir. Use
user-agent
ysleep
para facilitar el raspado. BS4 devuelve un bs.tag, así que úsalovariable[0]
. Si hay js ejecutándose, no podrá raspar usando solicitudes y bs4 directamente. Puede obtener el enlace de la API y luego analizar el JSON para obtener la información que necesita o probarselenium
.fuente