Нужно написать скрипт ruby ​​для создания файла csv данных на сайте - PullRequest
3 голосов
/ 19 марта 2009

Существует веб-сайт, который дает мне информацию о пин-кодах определенного штата, например, Индийский почтовый сайт , дает подробности, когда я выбираю штат в раскрывающемся списке.

Мне нужно написать скрипт на ruby, который бы создавал файл CSV со всеми данными для определенного состояния.

Сегодня у меня первый день на рубине, и я не знаю, как к этому подойти. Мы будем благодарны за любую помощь в правильном направлении.

Спасибо

Ответы [ 4 ]

12 голосов
/ 19 марта 2009

Вас должен заинтересовать камень FasterCSV

http://fastercsv.rubyforge.org/

gem install fastercsv

А потом, что-то вроде этого:

require 'fastercsv'
FasterCSV.open("temp.csv", "w") do |csv|
  csv << ["line1row1", "line1row2"]
  csv << ["line2row1", "line2row2"]
  # ...
end
2 голосов
/ 20 марта 2009

Вы должны быть в состоянии сделать это, используя следующие рубиновые камни:

Документацию и примеры для каждого драгоценного камня вы найдете по указанным выше URL-адресам и в Google . Кроме того, книга по Ruby может помочь улучшить ваши навыки Ruby.

2 голосов
/ 19 марта 2009

Вам необходимо уточнить / дать больше информации.

  • Вы пытаетесь отсканировать этот веб-сайт или создаете что-то подобное?
  • Если первое, вам нужно использовать Net :: HTTP и, возможно, некоторые регулярные выражения
  • Если последнее, откуда поступают данные (например, в каком виде вы их получаете)?

В любом случае, ruby ​​- хороший язык для общения. Попробуйте irb для интерактивного тестирования фрагментов. Генерация CSV может быть очень простой, особенно если у вас нет сложных строковых полей (например, вещей, которые могут иметь встроенные кавычки).

Для очистки экрана:

  • захватить страницу с помощью Net :: HTTP
  • grep через тело с помощью регулярных выражений, чтобы выбрать нужные значения
  • сделать это в CSV с помощью строковой интерполяции или используя пакет, упомянутый в другом ответе
1 голос
/ 17 апреля 2009

Так уж вышло, что я недавно закончил программу ruby ​​под названием bankjob, которая делает это только для сайта онлайн-банка.

Это полностью открытый исходный код и задокументировано, так что посмотрите его на bankjob.rubyforge.org .

Bankjob использует Mechanize, Hpricot (как предлагается в других ответах), чтобы очистить веб-сайт с таблицей в нем и произвести вывод CSV (он также производит OFX, который не имеет отношения к вашим потребностям - поскольку это данные выписки по счету, но CSV должен работать для любых данных).

Вы должны, по крайней мере, иметь возможность начать с Bankjob и вырезать то, что вам не нужно, для получения вашей почтовой информации, но на самом деле вы можете использовать ее как есть, создавая специальный скребок (который задокументирован ) чтобы получить ваши данные и сбросить их в csv с опцией --csv.

удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...