On touche du doigt l'objectif final!!
Concernant ta question sur l'indentation, ma fonction parse l'est en effet plus que la précédente, mais ce n'est absolument pas une volonté de ma part, c'est vrai qu'en revanche l'indentation semble vraiment importante et problématique sous python, chose que je n'avais jamais expérimenté avant ! est-ce un problème selon toi dans notre cas précis ?
Maintenant j'ai fait apparaître un autre problème: avec cette boucle, je souhaite mettre dans "urls" les deux urls que ma boucle for va venir créer (une url dans laquelle à correctement été placé le chiffre 1000 et la deuxieme dans laquelle à correctement été placé le chiffre 10)
Ainsi, je souhaite qu'il m'écrive dans DEUX fichiers différents les informations recueillies sur les deux url différentes (celles crées par ma boucle for) comme s'en suit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
import scrapy
class QuotesSpider(scrapy.Spider):
name = "histo"
tab1 = [1000,10]
def start_requests(self):
for i in self.tab1:
urls = 'https://min-api.cryptocompare.com/data/histohour?fsym=ETH&tsym=BTC&limit=%s&aggregate=1&toTs=1452680400&extraParams=your_app_name' % i
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = response.url.split("/")[-2]
filename = 'histo-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved file %s' % filename) |
Cependant rien de spécial ne se passe avec ce code, les page html ne se crée pas. Le seul moyen d'avoir un résultat (création d'une page html avec le contenu d'une des deux url) est de remplacer
yield scrapy.Request(url=url, callback=self.parse)
par
yield scrapy.Request(url=urls, callback=self.parse)
et là encore je ne vais avoir que la création de la page html dont les informations viennent de la deuxième url, j'ai comme l'impression qu'au moment de l'écriture, la page html correspondant à ma première url à bien été crée mais écrasée par la création de la deuxième.
J'ai essayé de conditionner l'écriture par une boucle, mais je pense être sur la mauvaise voie (?)
Partager