Я пробовал файловый конвейер, но он просто не работает. URL-адрес на странице A выглядит как http:...php?id=1234, поэтому встроенная функция file_path() возвращает ошибку. Переопределение file_path() просто останавливает работу конвейера без каких-либо отладочных результатов.
Итак, я нашел этот пост:
Ответ, на который я ссылался
После того, как я подал заявку, я обнаружил, что функция синтаксического анализа не меняет данные, которые я передал в мета. Мой код такой:
Код: Выделить всё
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
2018-09-29 09:26:13 [отладка] ИНФОРМАЦИЯ: ParseClientCaseNote: после вызова DownClientCaseNoteAttach, testmeta: это проверка мета-аргумента
2018-09-29 09:26:17 [отладка] ИНФОРМАЦИЯ: DownClientCaseNoteAttach: тест мета
2018-09-29 09:26:17 [отладка] ИНФОРМАЦИЯ: это проверка мета-аргумента
Похоже, функция синтаксического анализа отложена. Как мне правильно получить результат?
Подробнее здесь: https://stackoverflow.com/questions/525 ... e-function
Мобильная версия