我在Javascript驱动的网站上使用了scrapy和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
开始启动,但没有效果。
奇怪的是,只需将相同的URL复制粘贴到浏览器中就可以正常工作。
我使用普通的命令行scrapy以及通过API。有趣的是,当使用API时,当然,请在PyCharm中的错误消息中单击目标的url,井号#会被其转义码代替。所以我很困惑这是否是另一个问题,或者两者是否联系在一起。
甚至试图查看通过Wireshark和Fiddler发送的软件包,但由于我以前从未使用过这些工具,所以无法充分理解结果。
任何建议将不胜感激。
答案 0 :(得分:1)
最后,设法找出罪魁祸首。确实是与Docker容器的连接。
首先,我必须使用来检索docker容器IP
docker-machine ip
在docker终端中的。接下来,我必须调整scrapy settings.py文件中的SPLASH_URL
使其指向docker-machine ip而不是localhost:8050
,然后瞧瞧……它起作用了。
不幸的是,到目前为止,我所看到的消息来源对此还不太清楚,所以我希望这对于其他可怜的人来说是很有用的。