2017-02-16 21 views
0

Недавно я начал работу по созданию веб-скреперов с использованием scrapy. Первоначально я развернул свои проекты в области scrapy, используя scrapyd.ввод/вывод для экземпляра scrapyd, размещенного на экземпляре Amazon EC2 linux

SCRAPY проект, который я построил опирается на доступ к данным из файла CSV для запуска

def search(self, response): 
    with open('data.csv', 'rb') as fin: 
     reader = csv.reader(fin) 
     for row in reader: 
      subscriberID = row[0] 
      newEffDate = datetime.datetime.now() 
      counter = 0 
      yield scrapy.Request(
       url = "https://www.healthnet.com/portal/provider/protected/patient/results.action?__checkbox_viewCCDocs=true&subscriberId=" + subscriberID + "&formulary=formulary", 
       callback = self.find_term, 
       meta = { 
        'ID': subscriberID, 
        'newDate': newEffDate, 
        'counter' : counter 
        } 
       ) 

Он выводит Царапины данных в другую CSV файл

for x in data: 
     with open('missing.csv', 'ab') as fout: 
      csvwriter = csv.writer(fout, delimiter = ',') 
      csvwriter.writerow([oldEffDate.strftime("%m/%d/%Y"),subscriberID,ipa]) 
      return 

Мы находимся в начальной стадии создавая приложение, которое должно получить доступ и запустить этих пауков. Я решил разместить мой экземпляр scrapyd на экземпляре AWS EC2 linux. Развертывание в AWS было простым (http://bgrva.github.io/blog/2014/04/13/deploy-crawler-to-ec2-with-scrapyd/).

Как сбрасывать данные ввода/вывода в/из экземпляра scrapyd, работающего на экземпляре AWS EC2 linux?

EDIT: Я предполагаю, что пропусканием файл будет выглядеть

curl http://my-ec2.amazonaws.com:6800/schedule.json -d project=projectX -d spider=spider2b -d in=file_path 

Правильно ли это? Как бы я захватил выход из этого запуска паука? Имеет ли этот подход проблемы безопасности?

ответ

1

Есть ли опция S3? Я спрашиваю, потому что вы уже используете EC2. Если это так, вы можете читать/писать с/на S3.

Я немного смущен, потому что вы упомянули как форматы CSV, так и JSON. Если вы читаете CSV, вы можете использовать CSVFeedSpider. В любом случае, вы также можете использовать boto для чтения с S3 в методе __init__ вашего паука или start_requests.

Что касается вывода, this page объясняет, как использовать экспорт корма для записи вывода обхода на S3.

Соответствующие настройки:

+0

Спасибо, это то, что я искал. Я редактировал мой вопрос, чтобы сделать его менее запутанным –

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

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