Scrapy,Splash和Connection被另一方拒绝:10061

时间:2019-03-09 23:06:16

标签: python docker scrapy twisted scrapy-splash

我在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_AGENTSROBOT条目,但是没有运气。还尝试使用--disable-private-mode开始启动,但没有效果。

奇怪的是,只需将相同的URL复制粘贴到浏览器中就可以正常工作。

我使用普通的命令行scrapy以及通过API。有趣的是,当使用API​​时,当然,请在PyCharm中的错误消息中单击目标的url,井号#会被其转义码代替。所以我很困惑这是否是另一个问题,或者两者是否联系在一起。

甚至试图查看通过Wireshark和Fiddler发送的软件包,但由于我以前从未使用过这些工具,所以无法充分理解结果。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

最后,设法找出罪魁祸首。确实是与Docker容器的连接。

首先,我必须使用来检索docker容器IP

docker-machine ip
在docker终端中的

。接下来,我必须调整scrapy settings.py文件中的SPLASH_URL使其指向docker-machine ip而不是localhost:8050,然后瞧瞧……它起作用了。

不幸的是,到目前为止,我所看到的消息来源对此还不太清楚,所以我希望这对于其他可怜的人来说是很有用的。