Отправка файлов с помощью скрапа JsonRequest - PullRequest
0 голосов
/ 21 апреля 2020

Я хотел бы отправить файл с использованием scrapy-объекта JsonRequest в API, построенный с использованием DRF. В настоящее время я использую модуль запросов, но это противоречит цели асинхронной очистки.

Технические характеристики:

Scrapy==1.8.0
Django==3.0.3
djangorestframework==3.11.0

Текущее решение:

requests.post(
    url = 'API_URL',
    files = {'document': open(doc_name, 'rb')}
)

Я пытался использовать это Метод:

yield JsonRequest(
    url = 'API_URL',
    callback = self.document_downloaded,
    data = {
        'document': open(doc_name, 'rb')
    }
)

Но я получаю эту ошибку:

TypeError: Object of type 'BufferedReader' is not JSON serializable

Есть ли другой способ передачи файла в API? Или просто отправка двоичных данных файла из паука в API?

1 Ответ

0 голосов
/ 21 апреля 2020
  1. Скопируйте изображение в строку base64, затем получите эту строку в файле
    Python, затем декодируйте и сохраните в папке
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...