Python - Programación crawler

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

Programación crawler

Publicado por Toni (35 intervenciones) el 03/05/2019 16:41:23
Buenas tardes,

tengo que programar un crawler de la siguiente manera:

CoinMarketCap (https://coinmarketcap.com/) es una web con contenido acerca de las 100 criptomonedas
con más capitalización de mercado. Tengo que programar un crawler que extraiga los nombres y la capitalización de todas les monedas que se muestran en CoinMarketCap. Para ello, sólo hay que modificar dos líneas de código:

- la URL de inicio.
- la expresión XPath que selecciona el contenido a capturar.

El código sería el siguiente:

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
import scrapy
from scrapy.crawler import CrawlerProcess
 
class toni_spider(scrapy.Spider):
 
name = "toni_spider"
 
# Indicamos la URL que queremos analizar.
# Aquí hay que incluir la URL de inicio:
 
start_urls = [
""
]
 
def parse(self, response):
# Extraemos el nombre de la moneda.
# Aquí hay que incluir la expresión 'xpath' que nos retorna los nombres de las monedas.
 
for currency in response.xpath(''):
 
yield {
'currency': currency.extract()
}
if __name__ == "__main__":
 
# Creamos un crawler.
process = CrawlerProcess({
'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
'DOWNLOAD_HANDLERS': {'s3': None},
'LOG_ENABLED': False
})
 
# Inicializamos el crawler con nuestra araña.
process.crawl(toni_spider)
 
# Lanzamos la araña.
process.start()

¿Alguien sabe cómo completar el código (incluir la URL a analizar e incluir el xpath que retorna el nombre y la capitalización de las monedas)?

Muchas gracias por la ayuda.
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 joel
Val: 2.732
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Programación crawler

Publicado por joel (622 intervenciones) el 03/05/2019 20:00:33
No has tabulado el código... si lo tabulas correctamente intento ayudarte
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
sin imagen de perfil
Val: 66
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Programación crawler

Publicado por Toni (35 intervenciones) el 03/05/2019 22:01:01
Muchas gracias.
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
sin imagen de perfil
Val: 66
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Programación crawler

Publicado por Toni (35 intervenciones) el 06/05/2019 11:36:11
Hola,

¿alguien puede ayudarme con este algoritmo?

Gracias por adelantado.
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
sin imagen de perfil
Val: 66
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Programación crawler

Publicado por Toni (35 intervenciones) el 06/05/2019 22:08:49
Con Google Chrome puedo obtener el XPath de la primera criptomoneda (Bitcoin). Sería el siguiente:

//*[@id="id-bitcoin"]/td[2]/a

¿Cómo puedo modificar este Xpath para obtener como resultado del algoritmo los nombres de las primeras 100 criptomonedas?

Gracias.
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
sin imagen de perfil
Val: 66
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Programación crawler

Publicado por Toni (35 intervenciones) el 04/05/2019 10:46:27
Me olvidé comentar que hay que hacer la función de manera que retorne una tupla con el nombre de la moneda y la capitalización de mercado.
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