我在Javascript驱动的网站上使用scrapy with splash。但是,我无法通过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.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
开始启动,但没有效果。
奇怪的是,只需将相同的网址复制粘贴到浏览器中即可。
我使用普通的命令行scrapy,以及通过API。有趣的是,当使用API时,当然,在PyCharm中的错误消息中单击目标的url,#标签#将被其转义码替换。所以我很困惑是否在这个是另一个问题,或者两者是否相关。
甚至试图查看通过Wireshark和Fiddler发送的包,但是不能很好地理解结果,因为我之前从未使用过这些工具。
任何建议将不胜感激。
最后,设法找出罪魁祸首。它确实是与docker容器的连接。
首先,我必须使用检索docker容器IP
docker-machine ip
在码头终端。接下来,我不得不在scrapy settings.py文件中调整SPLASH_URL
以指向docker-machine ip而不是localhost:8050
,并且瞧......它有效。
不幸的是,到目前为止我看到的消息来源已经相当不清楚了,所以我希望这对其他可怜的灵魂第一次引起轰动有所帮助。