Развернуть проект Scrapy на удаленную ошибку сервиса Scrapyd - PullRequest
0 голосов
/ 13 ноября 2018

Я пытался развернуть тестовый проект Scrapy на удаленном сервере Scrapyd. Я получил следующее сообщение об ошибке на стороне клиента.

curl http://IP:6800/addversion.json -d project=test_project -d spider=quotes
{"status": "error", "message": "'version'", "node_name": "serverName"}

Сообщение об ошибке на стороне сервера

2018-11-13T12:22:22+0000 [_GenericHTTPChannelProtocol,0,IP Address] Unhandled Error
    Traceback (most recent call last):
      File "/usr/lib64/python2.7/site-packages/twisted/web/http.py", line 2190, in allContentReceived
        req.requestReceived(command, path, version)
      File "/usr/lib64/python2.7/site-packages/twisted/web/http.py", line 917, in requestReceived
        self.process()
      File "/usr/lib64/python2.7/site-packages/twisted/web/server.py", line 199, in process
        self.render(resrc)
      File "/usr/lib64/python2.7/site-packages/twisted/web/server.py", line 259, in render
        body = resrc.render(self)
    --- <exception caught here> ---
      File "/usr/lib/python2.7/site-packages/scrapyd/webservice.py", line 21, in render
        return JsonResource.render(self, txrequest).encode('utf-8')
      File "/usr/lib/python2.7/site-packages/scrapyd/utils.py", line 20, in render
        r = resource.Resource.render(self, txrequest)
      File "/usr/lib64/python2.7/site-packages/twisted/web/resource.py", line 250, in render
        return m(request)
      File "/usr/lib/python2.7/site-packages/scrapyd/webservice.py", line 83, in render_POST
        version = txrequest.args[b'version'][0].decode('utf-8')
    exceptions.KeyError: 'version'

Я проверил как клиент, так и сервер, все версии Scrapy 1.5.1. Версия Python 2.7. *

1 Ответ

0 голосов
/ 13 ноября 2018

Пример команды curl, которую вы показали ранее, не должен работать.В соответствии с документацией вам также потребуется:

  1. A version аргумент, который, как считается, является причиной проблемы, с которой вы столкнулись сейчас.
  2. Аргумент egg, содержащий фактический код проекта, в противном случае scrapyd не сможет получить его, если вы передадите только имя проекта и имя паука.
...