heise online
  • c't
  • iX
  • Technology Review
  • Mac & i
  • mobil
  • Security
  • Netze
  • Open Source
  • Developer
  • c't-TV
  • Download
  • Telepolis
  • Resale
  • Foto
  • Autos
  • Preisvergleich
  • Stellenmarkt
  • Abo
  • weitere Angebote
    • Shop
    • Artikel-Archiv
    • Veranstaltungen
    • Whitepapers
    • heise-marktplatz
    • IT-Markt
    • Tarifrechner
    • Jobs bei Heise

c't Magazin
  • Startseite
  • Artikel
  • c't-Projekte
  • Hotline & FAQ
  • Treiber & mehr
  • Kolumnen
Software zu Projekten Allgemeine Hinweise
Archiv-Suche Newsletter RSS-FeedRSS

c't › c't-Projekte

c't
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Search

Context Navigation

  • Start Page
  • Index
  • History
  • Last Change

  1. Ruby/Mechanize?
    1. Ein simples Beispiel
    2. Kurzübersicht
    3. Ruby/Mechanize? Cheat Sheet

Ruby/Mechanize?

 Dokumentation und Projekt-Homepage
 Downloads
 Nokigiri HTML und XML Parser

 Perl-Mechanize
 Python-Mechanize

Ein simples Beispiel

require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
agent.get('http://bing.de')
agent.page.forms.first.q = 'heise news'
agent.page.forms.first.submit
links = agent.page.search('div[@id="results"]/ul/li/div/h3/a')
links.each{|link| puts "#{link.text} (#{link['href']})"}

Kurzübersicht

Beim Kasten "Mechanize im Überblick" auf Seite 130 der c't 4/2010 hat sich leider ein kleine Fehler eingeschlichen. Um einen Link über seinen Text zu selektieren, muss immer das :text-Attribut angegebn werden, also:

  agent.page.link_with(:text => 'klick mich').click

Hier eine Kurzübersicht über die Mechanize-Funktionen. Ein umfangreicherer Übersicht mit den wichtigsten Funktionen finden Sie weiter unten im Ruby/Mechanize? Cheat Sheet.

Formular nach Name agent.page.form_with('form_name')
nach Action agent.page.form_with(:action => '/search')
als Array agent.page.forms[3] oder agent.page.forms.last
Link nach Text agent.page.link_with(:text => 'Klick mich')
RegExp agent.page.link_with(:href => /product\/.*\/info.html/)
Eingabefelder alle form.fields
nach Name form.field_with('feld_name')
Wert setzen form.feld_name = 'irgendwas'
Radio Buttons Setzen form.radiobuttons[2].check
  form.radiobuttons_with('name')[2].check
Checkboxen (Zurück)Setzen form.checkboxes[2].check (.uncheck)
nach Name form.checkboxes_with('name')[2].check
Optionsfelder Auswahl form.field_with('name').options[0].select
keine / alle form.field_with(‚name’).select_none (.select_all)
Wert direkt form.name = 'wert'
Navigation Zurück agent.back
Link folgen agent.page.link_with(:text => 'Klick mich').click
Formular senden Submit form.submit
Button-Klick form.click_button()
  form.click_button(form.button_with('name'))
Datenextraktion XPath agent.page.search('/table/tr')
CSS agent.page.search('.data_table .data_row')
HTML-Code agent.page.body
Text-Element agent.page.search('/div[@id="result"]/')[0].text

Ruby/Mechanize? Cheat Sheet

Das Ruby/Mechanize? Cheat Sheet fasst einige wichtige Funktionen auf einer A4-Seite zusammen.

  • Version 2010-01-30 -  svg  pdf
Creative Commons License
Ruby Mechanize Cheat Sheet von Tobias Grimm steht unter einer Creative Commons Namensnennung 3.0 Unported Lizenz.

 resume writer

Attachments

  • ruby-mechanize-cheat-sheet.pdf Download (42.9 KB) - added by tobi 2 years ago. Ruby Mechanize Cheat Sheet (PDF) 2010-01-30
  • ruby-mechanize-cheat-sheet.svg Download (79.9 KB) - added by tobi 2 years ago. Ruby Mechanize Cheat Sheet (SVG) 2010-01-30

Download in other formats:

  • Plain Text

Trac Powered

Powered by Trac 0.11.7
By Edgewall Software.

http://www.ctmagazin.de/
http://www.ctmagazin.de/projekte/

  • Datenschutzhinweis
  • Impressum
  • Kritik, Anregungen bitte an c't-WWW
  • Mediadaten
  • Copyright © 2011 Heise Zeitschriften Verlag
  • International: The H, The H Security, The H Open Source