小编mou*_*uch的帖子

使用刮板蜘蛛的间歇性“ getrandom()初始化失败”

我建立了一个沙哑的蜘蛛(Scrapy 1.4)。django网站通过django-rq并根据需要触发了该蜘蛛。

这是正在监听django-rq事件的受监管作业(reddit用作代理)

[program:rq_worker] 
command=python3 manage.py rqworker default 
directory=/var/www/django-app 
autostart=true 
autorestart=true 
stderr_logfile=/var/log/rq_worker.err.log 
stdout_logfile=/var/log/rq_worker.out.log
Run Code Online (Sandbox Code Playgroud)

此设置运行良好。但是,有时(我无法按需重现该问题),所有蜘蛛都会引发相同的OpenSSL错误:

2018-02-11 11:02:19 [scrapy.core.scraper] ERROR: Error downloading <GET https://whateverwebsite.com>
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/twisted/internet/defer.py", line 1299, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/local/lib/python3.5/dist-packages/twisted/python/failure.py", line 393, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/local/lib/python3.5/dist-packages/scrapy/core/downloader/middleware.py", line 43, in process_request
    defer.returnValue((yield download_func(request=request,spider=spider)))
twisted.web._newclient.ResponseNeverReceived: [<twisted.python.failure.Failure OpenSSL.SSL.Error: [('', 'osrandom_rand_bytes', 'getrandom() initialization failed.')]>]
Run Code Online (Sandbox Code Playgroud)

重新启动主管使问题消失了。

为了确保我的网站及其蜘蛛程序正常运行,我必须在每次重新启动supervisord时进行测试,以确保没有问题。没什么大不了,但仍然...

我想了解那里出了什么问题?如何解决此问题?与主管相关吗?扭曲相关吗?openSSL相关吗?

谢谢您的帮助

python openssl twisted scrapy supervisord

5
推荐指数
1
解决办法
1719
查看次数

在scrapy管道中使用scrapyd作业ID

我已经实现了一个使用scrapyd API 触发scrapy Spiders 的web 应用程序(web 应用程序和scrapyd 在同一台服务器上运行)。

我的 Web 应用程序正在存储从数据库中的 scrapyd 返回的作业 ID。我的蜘蛛正在数据库中存储项目。

问题是:如何在数据库中链接scrapyd 发布的作业ID 和爬网发布的项目?

我可以使用一个额外的参数来触发我的蜘蛛——比如说我的网络应用程序生成的 ID——但我不确定它是最好的解决方案。最后,如果scrapyd已经发布了它,则不需要创建该ID...

谢谢你的帮助

scrapy scrapyd

3
推荐指数
1
解决办法
821
查看次数

标签 统计

scrapy ×2

openssl ×1

python ×1

scrapyd ×1

supervisord ×1

twisted ×1