飞溅问题(d-bus、QSslSocket、libpng)

Posted

技术标签:

【中文标题】飞溅问题(d-bus、QSslSocket、libpng)【英文标题】:Splash issues (d-bus, QSslSocket, libpng) 【发布时间】:2018-06-26 23:30:32 【问题描述】:

我正在尝试通过 scrapinghub/splash Docker 映像使用 Splash,并在第一个请求之后发出一些警报(这是到 /robots.txt 端点,因为我正在为 scrapy 库使用 scrapy-splash 插件(使用 Python 3.6)。

[-] "172.17.0.1" - - [18/Jan/2018:00:05:12 +0000] "GET /robots.txt HTTP/1.1" 404 153 "-" "Scrapy/1.5.0 (+https://scrapy.org)"
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
process 1: D-Bus library appears to be incorrectly set up; failed to read machine uuid: UUID file '/etc/machine-id' should contain a hex string of length 32, not length 0, with no other text
See the manual page for dbus-uuidgen to correct this issue.
qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method

最可悲的是它没有渲染this page。还需要提一下,有时它会渲染这个页面,并且它包含重定向以防 JS 可用。

如何让它发挥作用?

更新

当使用scrapinghub/splash:3.0 时,这些消息仍然存在,但渲染有效。 那么我应该将其报告为scrapinghub/splash 图像中的错误还是这些错误可能是由我的环境引起的?

更新

出于某种原因,即使是 3.0master(docker 图像标签)也不会从现在开始渲染。因此,对于每个带有latestmaster3.0 标签的图像,在询问(索引端点上的表单)渲染http://floodlist.com/news 页面后,它只显示一个带有You are being redirected... 标题的页面。

我发现this issue 所以d-bus 问题可能是无害的。

【问题讨论】:

【参考方案1】:

流程 1:D-Bus 库似乎设置不正确;无法读取机器 uuid:UUID 文件“/etc/machine-id”应包含长度为 32 的十六进制字符串,而不是长度 0,没有其他文本 请参阅 dbus-uuidgen 的手册页以更正此问题。

这些似乎是关于如何解决 D-Bus 问题的相当简洁的说明。

我不知道其他警告,也不知道它们是否相关。

【讨论】:

这些错误消息出现在 docker 容器的标准输出中。那么 d-bus 的问题是在容器内吗? 这很可能。【参考方案2】:

这些警告/错误似乎是无害的(参见#491 on Splash 和#122 on scrapy-splash)

通过将wait 值增加到 1 秒,解决了渲染问题。更多关于渲染问题的信息here。

【讨论】:

以上是关于飞溅问题(d-bus、QSslSocket、libpng)的主要内容,如果未能解决你的问题,请参考以下文章

Qt:QSslSocket::bytesWritten() 信号发出过于频繁

不使用 SSL 时出现 QSslSocket 错误

将现有的 QTcpSocket 变形为 QSslSocket

QSslSocket 等待数据时超时(但 QTcpSocket 不会)

QSslSocket:无法调用未解析的函数 SSLv23_client_method

QTcpSocket 或 QSslSocket 会自动创建读/写线程吗?