Могу ли я читать данные веб-страницы с помощью Ruby?

Я ищу способ автоматизации тестирования, заполнения веб-страниц, а также хотел извлечь данные веб-страницы и сохранить их в нашей базе данных на постоянной основе. Есть ли способ выполнить это требование с помощью Ruby? Если да, расскажите, пожалуйста, какие модули ruby могут мне помочь.

1
nl ja de
+1 для справки и ссылки. Теперь вы могли бы сказать, какую версию ruby мне нужно установить, и пакет, о котором вы говорили, по умолчанию включается с Ruby, когда я устанавливаю или отдельно устанавливаю это?
добавлено автор Arup Rakshit, источник
@astropanic Я использую Windows 7. Будет ли эта операционная система поддерживать меня, чтобы делать то, что я ищу? Поместите все ваши предложения в ответ, так что я могу голосовать за вас :)
добавлено автор Arup Rakshit, источник
Вы, безусловно, должны сначала установить менеджер рубиновой версии, чтобы иметь возможность легко выбирать между версиями. Поскольку вы новичок, установите RVM rvm.io , позже установите ruby ​​1.9.3, а затем установите механический камень. Мы не можем просто написать вам здесь статью за то, что мы узнали и изучили в течение многих лет ... попробуйте эту конфигурацию, и вы окажетесь на правильном пути. Если кто-то думает, что rbenv лучше ... может быть, но это не имеет никакого значения для вас на этом этапе, позже, когда вы более опытные, вы сами можете решить
добавлено автор astropanic, источник
Проверьте механизацию mechanize.rubyforge.org/EXAMPLES_rdoc.html
добавлено автор astropanic, источник
разве вы не получили приемлемого ответа?
добавлено автор Hisako, источник

3 ответы

Да, вы можете выполнять все эти задачи, используя ruby и некоторые драгоценные камни.
Я рекомендую вам взглянуть на Nokogiri gem для извлечения данных: https://github.com/sparklemotion/nokogiri
И Capybara gem для тестирования и автоматизации форм и всего:
https://github.com/jnicklas/capybara

P.S .: Capybara gem делает гораздо больше, чем просто это, но его можно применить и к вашему делу.

1
добавлено
@MurifoX Можете ли вы проголосовать за меня, пожалуйста?
добавлено автор Arup Rakshit, источник
@Hisako +1 к вам.
добавлено автор Arup Rakshit, источник
Тогда как преодолеть такие проблемы?
добавлено автор Arup Rakshit, источник
+1 , чтобы вы также проявили интерес к моей боли. Все рекомендации по установке этой части Nokogiri и Capybara на машине Windows 7?
добавлено автор Arup Rakshit, источник
какая версия ruby будет поддерживать это и любое руководство по установке, которое вы хотите использовать?
добавлено автор Arup Rakshit, источник
Я никогда не использовал окна в качестве среды программирования. Но я думаю, вы можете установить драгоценные камни так же, как любой unix env. Остерегайтесь проблем с некоторыми C расширениями драгоценных камней. Я читал об этом, и это может произойти.
добавлено автор MurifoX, источник
Любые версии рубинов поддерживают эти драгоценные камни. Но вы можете установить более новую для лучшей поддержки. На страницах github обоих драгоценных камней содержатся хорошие примеры и учебные пособия, которые вы можете использовать. знак равно
добавлено автор MurifoX, источник
в моих случаях devtools rubyinstaller.org/add-ons/devkit разрешил родные проблемы под окнами.
добавлено автор Hisako, источник

Прежде всего, вам нужна правильная операционная система, либо используйте Linux или BSD, либо MacOS.

Windows может поместиться для некоторых людей, но не для вас, как для рубинового разработчика, слишком много библиотек, которые нуждаются в c расширениях, с болью в заднице для компиляции под cygwin.

Я рекомендую установить диспетчер версий Ruby, чтобы вы могли попробовать разные версии ruby, я предпочитаю RVM, ruby Version Manager.

Установите ruby 1.9.3, это стандарт в наши дни.

Крошечные рубигемы устанавливают механику самоцвета, с помощью всей автоматизации для веб-сайтов, которые вам понадобятся. Это преемник LWP :: Mechanize от Perl.

Nokogiri также был бы полезен для анализа XML-данных, таких как (X) HTML, но помните, что в вашей системе должны быть установлены ранее libxml-библиотеки.

Ах, по вашему вопросу:

Да, вы можете читать веб-сайты с использованием ruby, например, прочитать эту веб-страницу:

http = HTTPClient.new
http.get "http://stackoverflow.com/questions/14235393/can-i-read-webpage-data-using-ruby"

Готово

1
добавлено
+1 для вас. Теперь у меня нет chioce, поскольку моя организация использует Windows PC (7/XP)
добавлено автор Arup Rakshit, источник
да, и никогда не научиться правильно работать, управлять системными ресурсами или общаться через ... unix сокеты. Прочтите этот workwithunixprocesses.com , ruby является кроссплатформенным, но все его библиотеки, где его сила исходит не из определенно, но эта дискуссия не имеет смысла, поэтому я желаю вам удачи в вашей среде Win и многих успешных проектах.
добавлено автор astropanic, источник
ПУТЬ лучше справедливо, так как я снова смогу установить Windows. И особенно новичок не должен начинать с разработки ruby под Windows
добавлено автор astropanic, источник
Что вы имеете в виду, что ваша организация использует ...? Невозможно использовать функцию двойной загрузки или установщик WUBI? ubuntu.com/download/desktop/windows-installer Вы также можете купить через месяц или два - доступный хост SSH на сумму около 5 долларов
добавлено автор astropanic, источник
a) Вы когда-нибудь видели реальную производственную среду, обслуживающую приложения ruby из Windows? б) «в большинстве случаев» недостаточно, либо вы должны иметь возможность полностью использовать весь язык, либо нет смысла использовать его
добавлено автор astropanic, источник
снова: все, что вы упомянули, не имеет ничего общего с вопросом OP. И: не поймите меня неправильно: я разрабатываю в основном с linux. Но в большинстве случаев вам просто не нужны те конкретные библиотеки, о которых вы говорили. Особенно, как новичок, такой как OP. понял?
добавлено автор Hisako, источник
одно преимущество рубина кроссплатформенное;) просто начните с платформы, с которой вам удобно, поэтому вы можете сосредоточиться на самом рубине, а не на всей вашей среде.
добавлено автор Hisako, источник
среда разработки не должна в каждом случае соответствовать производственной среде. Я использую ruby ​​& jruby на ежедневной основе на нескольких машинах (включая Windows Vista, Win7, Win XP, Ubuntu (несколько), archlinux и даже на моем устройстве Android). Конечно, linux per se лучше подходит для разработки, но окна в основном достаточно хороши. просто зависит от того, что вы делаете.
добавлено автор Hisako, источник
Windows для разработки ruby отлично подходит для большинства случаев, благодаря devtools для C-Extensions (доступно на странице rubyinstaller). По некоторым причинам рубин несколько медленнее, чем, например,: ubuntu linux, но кто заботится в большинстве случаев ... Также, если он может использовать JRuby, он действительно не играет роли, которую он использует.
добавлено автор Hisako, источник

Поскольку некоторые веб-страницы могут быть недействительными XML, вы также можете использовать регулярные выражения для извлечения данных, которые вы хотите с веб-страницы. Иногда подход XMLReader просто терпит неудачу.

Образец:

require 'open-uri'
page_content = open("http://your_page.com").read
page_body = page_content.scan(/<body>(.*)<\/body>/i).first
# do whatever you want with it

Как сказал VBSlover, capybara полезен для рассмотрения связанных вещей.

Выполнение этого автоматическим способом каждые n минут или тому подобное также возможно при каждом драгоценном камне.

Для обработки базы данных есть много очень хороших камней.

Окончательный ответ: теперь с ruby вы не можете ничего сделать. Хорошо, возможно, кроме написания действительно (!) Высокопроизводительных кодов/3D-двигателей.

Edit: if you can tell what you exactly want to do i may suggest you some matching gems. Usually "There is a gem for it" is a good saying. you can browse rubygems.org for some keywords you need, or look at https://www.ruby-toolbox.com/ for some categorized/ranked suggestions for your problem. :)

EDIT 2: have a look at http://watir.com/ maybe just play around with it in some little painless scripts to get a feeling for it and if it is the solution for you.

Watir управляет браузерами так же, как люди. Он нажимает ссылки, заполняет   в формах, нажимает кнопки. Watir также проверяет результаты, например,   ожидаемый текст появляется на странице.

Как только вы его нажмете на все, просто очистите результаты (или все, что вам нужно) от веб-страницы, используя некоторый XML-Parser (nokogiri - хороший выбор) или некоторые регулярные выражения.

Затем введите данные в свою базу данных. Activeecord приходит на ум за это, но это может быть или не быть излишним. в зависимости от вашей базы данных, выберите любой подходящий вам адаптер/жемчуг (опять же: есть МНОГО).

Если вы хотите делать это каждый час или тому подобное, просто используйте каждый раз, когда драгоценный камень (управляет кроной для вас), или просто напишите бесконечный цикл со сном (x) в нем, если хотите. Существует несколько способов сделать это. :)

1
добавлено
Да ты прав! Но что это означает, что веб-страница читает ? означает, что он отличается от чтения содержимого веб-страницы ?
добавлено автор Arup Rakshit, источник
Снова +1 для справки!
добавлено автор Arup Rakshit, источник
Поддерживает ли ruby ​​ Firefox 13 , и если да, то что мне нужно для этого установить?
добавлено автор Arup Rakshit, источник
В прошлый раз, когда я попробовал, я потерпел неудачу с установками watir , попробовал больше, взял справку из Интернета, но результат был ZERO . Итак, в этом контексте ruby я могу установить, после чего мне нужно делать с этими установками? любое руководство? :)
добавлено автор Arup Rakshit, источник
Да, спасибо, чтобы показать свои чувства к моей боли. +1 для этого. Однажды я упоминаю здесь, что хочу. Я использую стороннее веб-приложение, где мы выполняем монотонную задачу. Теперь я хочу автоматизировать все, скажем тестирование, извлечение данных с веб-страницы, а также разработку. Это приложение - не что иное, как инструмент SaaS, где мы создаем форму запроса и рабочие процессы - все, нажав только. Если хотите, получите больше информации, я рад поделиться вами!
добавлено автор Arup Rakshit, источник
Так что ваш вопрос неправильный, вы не хотите читать веб-страницу (получать содержимое), вы хотите автоматизировать взаимодействие браузера с веб-страницей, да? seleniumhq.org/projects/remote-control
добавлено автор astropanic, источник
Ruby - это язык программирования, я не знаю, что вы имеете в виду под «поддержкой» Firefox? Если вы имеете в виду библиотеку watir: watirwebdriver.com говорит, что Firefox, Chrome, IE и Safari из коробки.
добавлено автор Hisako, источник
Ruby поставляется с встроенным менеджером пакетов RubyGems. перейдите в свой CLI и просто введите «gem install XXX», а через секунду он должен быть там. После этого просто «потребуем« XXX »в вашем скрипте. Вот и все. Если у вас возникли проблемы с этим основным материалом, отправьте свою ОС, рубиновую версию (и/или версию RVM). И шаги, которые вы сделали, и какая ошибка возникает, когда.
добавлено автор Hisako, источник
обновленный ответ для вас
добавлено автор Hisako, источник
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков