Я видел Загрузка файла Scrapy, как использовать пользовательское имя файла , и мой вопрос заключается в том, как мне продвинуть этот код, добавив удаленный элемент со страницы к имени файла? Я создал элемент, который содержит имя файла, но как мне получить доступ к этому элементу или передать его в конвейер file_urls? Я попытался использовать ответ для повторной пометки элемента, но мой метод где-то выключен.
def doc_page(self, response):
tr = response.xpath('//tr/td/a').attrib['href']
if tr is not None:
next_page = response.urljoin(tr)
# desired preceeding filename
filename = 'MSFT_' + \
response.xpath('(//tr/td[2]//text()').get() + /
'_' + response.xpath('.//div[contains(@class,
"formContent")]').xpath('.//div[contains(@class, "info")]\
[2]//text()').get()
loader = ItemLoader(item=SecScrapeItem(), selector=next_page)
loader.add_value('file_urls', next_page)
if filename:
loader.add_value('myFile', filename)
yield loader.load_item()
def file_path(self, request, response=None, info=None):
original_path = super(SecScrapePipeline, self).file_path(request, response=None, info=None)
sha1_and_extension = original_path.split('/')[1] # delete 'full/' from the path
return request.meta.get('filename', '') + item['myFile'] + "_" + sha1_and_extension
def function(foo):
print(foo)
Я хочу, чтобы вывод был 'MSFT_10-K_2018-08-03' + SHA1_extension, ноЯ могу получить только SHA1_extension
Любые мысли будут полезны!