1、get_media_ requests函数
- 请求函数,获取item里面的file_urls数据,请求拿到文件的内容,并返回源码:
-
def get_ media_ requests(self, item, info) : return [Request(x) for x in item.get(self.files_urls_field, [])]
2、file_downloaded函数
- 文件下载函数,具体操作是拿到文件内容和保存路径,然后保存。
- 这里可以修改为保存到文件服务器上,需要服务器地址和ID和KEY,操作详见文件服务器供应商提供的开发文档。
- 源码:
-
def file_ downloaded(self, response, request, info): path = self.file_path(request, response= response, info=info) buf = BytesIO(response.body) checksum = md5sum (buf) buf.seek(0) self.store .persist_file(path, buf, info) return checksum
-
3、file_path函数
- 该函数是被调用的,需要获取地址,则调用这个函数,返回一个地址调用函数。
- 源码:
4、item_completed函数
- 文件下载好之后,通过这个函数,将item返回,传到下一个管道文件中去。
- 如果没有return_item,则下一个管道文件将收不到item。
- 源码:
-
def item_completed(self, results, item, info): if isinstance(item, dict) or self.files_result_field in item_fields : item[self.files_result_field] = [x for ok, x in results if ok] return item
-