Scrapy: Prozessergebnis der Parse-Funktion fortsetzenPython

Python-Programme
Anonymous
 Scrapy: Prozessergebnis der Parse-Funktion fortsetzen

Post by Anonymous »

Ich versuche, Seite A zu analysieren, die auf der Seite aufgeführten Dateien auf die lokale Festplatte herunterzuladen, die URL auf Seite A durch die URL der von mir gespeicherten Dateien zu ersetzen und schließlich Seite A auf der lokalen Festplatte zu speichern.
Ich habe es mit File Pipeline versucht, aber es funktioniert einfach nicht. Die URL auf Seite A sieht wie folgt aus: http:...php?id=1234, daher gibt die integrierte Funktion file_path() einen Fehler zurück. Das Überschreiben von file_path() stoppt einfach die Pipeline-Funktion ohne Debug-Ausgabe.
Also habe ich diesen Beitrag gefunden:
Antwort, auf die ich verwiesen habe
Nachdem ich mich beworben habe, habe ich festgestellt, dass die Parsing-Funktion die Daten, die ich in Meta übergeben habe, nicht ändert. Mein Code ist wie folgt:

Code: Select all

def ParseClientCaseNote(self,response):
# The function is to download all attachments and replace URL inside pointing to local files
TestMeta='this is to test meta argu'
for a in AttachmentList:
yield scrapy.Request(a,callback=self.DownClientCaseNoteAttach,meta={'test':TestMeta})

self.logger.info('ParseClientCaseNote: after call DownClientCaseNoteAttach, testmeta is: ' + TestMeta)

return

def DownClientCaseNoteAttach(self,response):
TestArg=response.meta['test']
self.logger.info('DownClientCaseNoteAttach: test meta')
self.logger.info(TestArg)
TestArg='this is revised from DownClientCaseNoteAttach'

with open(AbsPath,'wb') as f:
f.write(response.body)
return
Ich habe das folgende Ergebnis im Protokoll erhalten:

2018-09-29 09:26:13 [debug] INFO: ParseClientCaseNote: Nach dem Aufruf von DownClientCaseNoteAttach lautet testmeta: Dies dient zum Testen von Metaargu
2018-09-29 09:26:17 [debug] INFO: DownClientCaseNoteAttach: Test-Meta
2018-09-29 09:26:17 [debug] INFO: Dies dient zum Testen von Meta-Argu

Es scheint, dass die Parsing-Funktion verzögert ist. Wie erhalte ich das korrekte Ergebnis?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post