Splash 不适用于 Privoxy/Tor。虽然
- Privoxy/Tor 在浏览器中工作。
- Splash 与普通代理一起工作。
yield SplashRequest(url, self.parse_func, args={'wait': 2.5, 'proxy': 'http://a_proxy_address:port', })
. - 没有飞溅的刮擦通过Privoxy工作。
yield scrapy.Request(url, callback=self.parse_func, meta={'proxy': 'http://127.0.0.1:8118'})
(。
在脚本中,启动给出错误 502。
如果尝试在浏览器中打开启动页面localhost:8050
,它会给出错误的页面:Privoxy was unable to socks5t-forward your request http://localhost:8050/ through localhost: SOCKS5 request failed
/etc/privoxy/config:
forward-socks5 / localhost:9050 .
forward-socks4 / localhost:9050 .
forward-socks4a / localhost:9050 .
forward-socks5t / localhost:9050 .
我还试图/etc/privoxy/config
以下行中添加,但没有帮助。
forward localhost .
您的问题是您正在使用 splash 并向其传递本地主机代理。当飞溅尝试使用127.0.0.1:8118
时,这是指飞溅容器本身,那里没有任何东西运行。所以它失败了。
两种可能的解决方案
在主机网络上运行飞溅
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', })