2017-06-17 83 views
1

我的PC上有一個scrapy飛濺蜘蛛的工作實例。然後我將它遷移到我的Linux服務器上。蜘蛛工作正常,並檢索結果沒有飛濺。然而,對於相同的網站,當我使用飛濺(https://github.com/scrapy-plugins/scrapy-splash)時,我的蜘蛛不會檢索任何內容並返回404錯誤。我在服務器上設置了nginx和django,我想知道這是否與splash的「SPLASH_URL」設置衝突。Scrapy飛濺設置:「SPLASH_URL」

1)我試圖改變飛濺網址以下所有條件:

SPLASH_URL = 'http://localhost:8050/' 
SPLASH_URL = 'http://127.0.0.1:80/ 
SPLASH_URL = '<server ip>:8050/' 

我也改變了端口80和8050

2)當從我的服務器上運行嫋嫋,我得到以下內容

$ curl http://localhost:80/render.html?url=http%3A%2F%2Fwww.google.com 

<html> 
    <head><title>404 Not Found</title></head> 
    <body bgcolor="white"> 
    <center><h1>404 Not Found</h1></center> 
    <hr><center>nginx/1.10.0 (Ubuntu)</center> 
    </body> 
</html> 

什麼可能導致404錯誤。如果我使用docker,則splash指令指定將url設置爲localhost或docker ip。提前感謝!

+0

您啓用了'SplashDeduplicateArgsMiddleware','SplashCookiesMiddleware'和'SplashMiddleware'嗎?還有一個'DUPEFILTER_CLASS',你有沒有設置它? –

+0

問題是,當你啓動一個splash實例和一個服務器時,實例的IP改變了它不再是本地主機... Dockerized或者獨立使用splash模塊,因此internel網絡映射是不同的,如果你運行本地環境..相當肯定這是問題。 – scriptso

+0

如果我有一個乾淨的Ubuntu服務器,我應該提供什麼ip讓蜘蛛工作? – user6055239

回答

0

我剛剛明白了這一點。發現我的啓動服務器由於某種錯誤而退出。正在運行docker start <containerId>修復了問題