J'ai une fonction d'analyse en utilisant scrapy pour obtenir des données d'un site web, cette fonction passe certaines données à une autre fonction avec cette fonction, je ne peux pas retourner la sortie !, je l'ai essayé avec print ça marche mais je dois utiliser return pour obtenir les données dans un fichier json. Comment faire des éléments de retour de fonction imprimés?Comment renvoyer des données sous forme de fonction séparée de la fonction scrapy parse?
def parse(self, response):
all_tr= list()
for tr in response.xpath('//tr').extract():
all_tr.append(tr)
tr_data = list()
city_tr = list()
for tr in all_tr:
if re.findall(r'class="city".+name.+?<', tr):
city_tr.append(tr)
else:
pass
c= 0
const =1
while const ==1:
try:
start=city_tr[c]
end= city_tr[c+1]
indexStart=all_tr.index(start)
indexEnd=all_tr.index(end)
tr_data.append(all_tr[indexStart:indexEnd])
c=c+1
except IndexError:
const=2
tr_data.append(all_tr[all_tr.index(start):])
for tr in tr_data:
func_2(tr)
j'ai quelques opérations func_2, en passant ensuite à un autre Fnction "prin func"
def print_func(city,days, tr):
if len(days)==0:
item=PropertiesItem()
item['Name']= ""
item['City']= city
item['State']= "CA"
return item
print_func ne reviennent pas quoi que ce soit, quelqu'un pourrait-il s'il vous plaît dire à mon pourquoi? Scrapy vérifie la valeur de retour de la fonction d'analyse.
Formater votre code correctement afin qu'il soit lisible –
@TarunLalwani fait. Avez-vous une idée de la raison pour laquelle la fonction d'impression ne renvoie pas l'élément? –