2014-11-17 3 views
2

Итак ... Я бегу scrapyd на моем Ubuntu например ec2 после выполнения этого поста: http://www.dataisbeautiful.io/deploying-scrapy-ec2/pymongo.errors.ConnectionFailure: тайм-аут от экземпляра убунту ec2 работает scrapyd

однако я предполагаю, что я не могу получить PyMongo для подключения к MongoLabs Монго базы данных, так как журналы убунту ec2 scrapyd говорят

pymongo.errors.ConnectionFailure: timed out 

Я настоящий нуб, когда дело доходит до заднего конца вещи, так что я на самом деле не имею ни малейшего представления, что может быть вызвав эту проблему. Когда я запускаю свой scrapyd из localhost, он отлично работает и сохраняет скребковые данные в моем MongoLabs db. Для моего scrapyd, работающего на экземпляре ec2, я могу получить доступ к scrapyd gui, набрав адрес ec2 на порте 6800 (что эквивалентно локальному адресу scrapyd: 6800), но это все. Керлинг

curl http://aws-ec2-link:6800/schedule.json -d project=sportslab_scrape -d spider=max -d max_url="http://www.maxpreps.com/high-schools/de-la-salle-spartans-(concord,ca)/football/stats.htm" 

возвращает «статус»: «хорошо» и я могу видеть, появится работа, но никакие пункты не производятся, а журнал показывает только

2014-11-17 02:20:13+0000 [scrapy] INFO: Scrapy 0.24.4 started (bot: sportslab_scrape_outer) 
2014-11-17 02:20:13+0000 [scrapy] INFO: Optional features available: ssl, http11 
2014-11-17 02:20:13+0000 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'sportslab_scrape.spiders', 'SPIDER_MODULES': ['sportslab_scrape.spiders'], 'FEED_URI': 'items/sportslab_scrape/max/4299afa26e0011e4a543060f585a893f.jl', 'LOG_FILE': 'logs/sportslab_scrape/max/4299afa26e0011e4a543060f585a893f.log', 'BOT_NAME': 'sportslab_scrape_outer'} 
2014-11-17 02:20:13+0000 [scrapy] INFO: Enabled extensions: FeedExporter, LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, SpiderState 
2014-11-17 02:20:13+0000 [scrapy] INFO: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware, HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddleware, ChunkedTransferMiddleware, DownloaderStats 
2014-11-17 02:20:13+0000 [scrapy] INFO: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware 

Каждый получил некоторые полезные идеи для моего вопроса ? Благодаря!

Редактировать: Код подключения добавлен. Settings.py

MONGODB_HOST = 'mongodb://user:[email protected]:38839/sportslab_mongodb' 
MONGODB_PORT = 38839 # Change in prod 
MONGODB_DATABASE = "sportslab_mongodb" # Change in prod 
MONGODB_COLLECTION = "sportslab" 

Scrapy в Pipeline.py

from pymongo import Connection 
from scrapy.conf import settings 

class MongoDBPipeline(object): 
    def __init__(self): 
     connection = Connection(settings['MONGODB_HOST'], settings['MONGODB_PORT']) 
     db = connection[settings['MONGODB_DATABASE']] 
     self.collection = db[settings['MONGODB_COLLECTION']] 
    def process_item(self, item, spider): 
     self.collection.insert(dict(item)) 
     return item 
+0

Возможно, вы подключитесь к Монго? https://github.com/sebdah/scrapy-mongodb Можете ли вы опубликовать свои настройки подключения к монго? – Rico

+0

Нет, просто pymongo. Я обновил его сейчас. – pyramidface

+0

Вы можете запустить 'telnet asdf.mongolab.com 38839' из экземпляра EC2 и опубликовать то, что видите? – Rico

ответ

2

Я решил эту проблему. Первоначально, я создал исходящие правила группы по вопросам безопасности моего EC2 в как:

Outbound 
Type:HTTP, Protocol: TCP, Port Range:80, Destination: 0.0.0.0/0 
Type:Custom, Protocol: TCP, Port Range: 6800, Destination: 0.0.0.0/0 
Type:HTTPS, Protocol: TCP, Port Range:443, Destination 0.0.0.0/0 

Однако этого было недостаточно, поскольку я также нужен конкретный заказ TCP протокол для фактического порта mongolab дб я подключаюсь, который должен выглядеть следующим образом:

Type:Custom, Protocol: TCP, Port Range: 38839, Destination: 0.0.0.0/0 

 Смежные вопросы

  • Нет связанных вопросов^_^