【发布时间】:2019-07-31 15:29:28
【问题描述】:
我在 Javascript 驱动的网站上使用带有 splash 的 scrapy。但是,我无法通过 Connection was refused by other side: 10061 错误。
我得到这样的日志:
[scrapy.downloadermiddlewares.retry] DEBUG: Retrying
<GET https://www2.deloitte.com/ch/en/misc/search.html#country=All#qr=accounting
via http://localhost:8050/render.html> (failed 1 times): Connection
was refused by other side: 10061: No connection could be made because
the target machine actively refused it..
还有一个指向twisted的回溯:
twisted.internet.error.ConnectionRefusedError: Connection was refused
by other side: 10061: No connection could be made because the target
machine actively refused it..
我检查了设置中的所有条目,并尝试了各种 USER_AGENTS 和 ROBOT 条目,但没有运气。也试过用--disable-private-mode启动splash,但是没有效果。
奇怪的是,只需将相同的 url 复制粘贴到浏览器中就可以完美地工作。
我使用普通的命令行scrapy,以及通过API。有趣的是,在使用 API 时,当然,在 PyCharm 中单击错误消息中目标的 url,标签 # 会被其转义码替换。所以我很困惑这是另一个问题还是两者是否相关。
甚至尝试查看通过 Wireshark 和 Fiddler 发送的包,但无法很好地理解结果,因为我以前从未使用过这些工具。
任何建议将不胜感激。
【问题讨论】:
-
虽然我完全按照 Splash 的安装说明进行操作,但我对 docker 的安装持怀疑态度。我对 docker 不是很熟悉(我使用的是基于 VM 的工具箱版本),但是我在 docker 中运行了一些其他测试图像(友好的你好),效果很好。此处是否有任何用于 Splash 的 docker / VM 配置,我错过了?
标签: python docker scrapy twisted scrapy-splash