Python - Tomar datos de una pagina web para utilizarlos luego

 
Vista:
sin imagen de perfil
Val: 6
Ha disminuido su posición en 20 puestos en Python (en relación al último mes)
Gráfica de Python

Tomar datos de una pagina web para utilizarlos luego

Publicado por Daiana (2 intervenciones) el 14/05/2018 13:45:51
Buenos días,

quiero usar los datos de una pagina web (adjuntada abajo), esta página se actualiza cada 1 minuto. Mi idea es poder leer la fecha y hora (stop y Start), Name, Region, Latitude, Longitude, WWLLN strokes (< 20 km) y WWLLN strokes (< 100 km). La verdad no tengo ninguna idea de si esto se puede hacer, mis conocimientos de programación son básicos y en Python estoy comenzando, pero si hacer esto es posible me pondré a estudiar el tema.

La pagina web se ve de esta forma (extraída de http://flash3.ess.washington.edu/USGS/Global/):

Lista

Agradecería cualquier idea o ayuda brindada!

Un Saludo,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Tomar datos de una pagina web para utilizarlos luego

Publicado por algoritmo (245 intervenciones) el 14/05/2018 15:29:08
Hola.

Una idea:

pagina = urllib2.urlopen('http://flash3.ess.washington.edu/USGS/Global/').read()

Obtienes en la variable 'pagina' el contenido de tu página.
A partir de ahí, tendrías que currártelo y localizar en el texto obtenido lo que quieres.

Saludos :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 106
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Tomar datos de una pagina web para utilizarlos luego

Publicado por Jonay Zevenzui Castro Suárez (14 intervenciones) el 15/05/2018 17:59:48
Lo que quieres se llama scrapping web, te lo digo para si quieres buscar mas información y ampliar conocimientos.
He escrito un pequeño codigo que obtiene los datos que te interesan de esa pagina web para luego crear un archivo en formato .csv (el cual al abrirlo te mostrará los datos en una hoja excel), el nombre del archivo sigue esta plantilla:
Start+Stop.csv

Espero que te sirva y te anime a aprender python. Un saludo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
'''
Created on 15 may. 2018

@author: Jonay Zevenzui Castro Suárez
'''
 
from bs4 import BeautifulSoup as BS #importamos clase BeautifulSoup y le asignamos el alias BS
import requests, csv #imortamos los modulos requests y csv
 
url = 'http://flash3.ess.washington.edu/USGS/Global/' #declaramos la variable url y le asignamos la dirección de la web
matriz = [] #declaramos la variable matriz
 
rec = requests.get(url) #instanciamos el método get del modulo requests 
status = rec.status_code #declaramos la variable status y le asignamos la respuesta de la página web
 
if status == 200: #si la conección se efectua
    html = BS(rec.text, 'lxml') #inicalicimos la variable html que contendra todo el contenido de la web
#buscamos la etiqueta dentro del codigo html que contiene los datos Start y Stop  
D_fecha = (html.find('p', {'class':'intro'}).getText()).split('UTC')
Start = (D_fecha[0].replace('\n', '')).strip(' ')
Stop = D_fecha[1].strip(' ')
#------------
#buscamos las etiquetas tr que contienen los datos de la tabla
filas = html.find_all('tr', {'class':'outer'})
Need_dat = (2,4,5,6,7,8)
#------------
#buscamos el texto que nos interesa y lo guardamos en la variable matriz creada en el inicio
for i in filas:
    fila = i.getText().split('\n')
    d = []
    for j in range(len(fila)):
        if j in Need_dat:
            if len(d) < 7:
                d.append((fila[j].strip(' ')).encode('utf-8'))
    matriz.append(d)
#------------
#creamos el fichero donde se guardaran los datos que queremos
fil_name = ('Datos'+Start+'\\'+Stop+'.csv')
a = open(fil_name, 'a')
fil = csv.writer(a)
fil.writerow(['Name', 'Region', 'Latitude', 'Longitude', 'WWLLN strokes (< 20 km)', 'WWLLN strokes (< 100 km)'])
for fila in matriz:
    fil.writerow(fila)
 
a.close()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 6
Ha disminuido su posición en 20 puestos en Python (en relación al último mes)
Gráfica de Python

Tomar datos de una pagina web para utilizarlos luego

Publicado por Daiana (2 intervenciones) el 17/05/2018 16:22:17
Muchísimas gracias!
La verdad que me sirvió muchísimo tu ayuda, ya lo corrí y con algunos cambios me anduvo muy bien. Había encontrado que lo que quería se llamaba web scraping e instalé el paquete de BeatifulSoup, pero después de cargar la pagina no podía extraer de ahí lo que necesitaba, ahora voy entendiendo un poco más al respecto!

Te agradezco mucho por el aporte, seguiré aprendiendo del mundo Python!

Un cordial saludo!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar