与Privoxy / Tor一起飞溅不起作用(localhost冲突?)

时间:2017-08-24 14:06:20

标签: scrapy tor splash scrapy-splash privoxy

Splash不适用于Privoxy / Tor。虽然

  • Privoxy / Tor可在浏览器中使用。
  • Splash适用于普通代理。 yield SplashRequest(url, self.parse_func, args={'wait': 2.5, 'proxy': 'http://a_proxy_address:port', })
  • 没有Splash的Scrapy通过Privoxy工作。 yield scrapy.Request(url, callback=self.parse_func, meta={'proxy': 'http://127.0.0.1:8118'}))。

在脚本中Splash给出错误502.

如果尝试在浏览器中打开Splash页面localhost:8050,则会显示错误页面: Privoxy was unable to socks5t-forward your request http://localhost:8050/ through localhost: SOCKS5 request failed

的/ etc / Privoxy的/配置:

forward-socks5 / localhost:9050 .
forward-socks4 / localhost:9050 .
forward-socks4a / localhost:9050 .
forward-socks5t / localhost:9050 .

我还尝试在/etc/privoxy/config添加以下行,但它没有帮助。

forward localhost  .

1 个答案:

答案 0 :(得分:2)

您的问题是您正在使用splash并将其传递给localhost代理。当splash尝试使用127.0.0.1:8118时,这指的是splash容器本身,并且没有任何东西在那里运行。所以它失败了。

两种可能的解决方案

在主机网络上运行启动

sudo docker run --net host scrapinghub/splash

提供代理IP

如果笔记本电脑/ PC的路由器有192.168.0.101 IP,请使用

yield SplashRequest(url,
self.parse_func, args={'wait': 2.5, 'proxy':
'http://192.168.0.101:8118', })