SlideShare a Scribd company logo
June 1st - 3rd 2016
Copenhagen, Denmark
SCRAPING WITH
GEB
SERGIO DEL AMO
ME@SERGIODELAMO.COM
@SDELAMO
IOS APP
APP STORE
GR8CONFAGENDA
GOOGLEPLAY
GROOVYCALAMARI.COM
A “weekly” curated email
newsletter full of
interesting, relevant links
about the Groovy
Ecosystem
GEB
HTTP://GEBISH.ORG
http://www.webbotsspidersscreenscrapers.com
WHAT CAN YOU DO?
▸ PRICE-MONITORING WEBBOTS
▸ IMAGE-CAPTURING WEBBOTS
▸ LINK VERIFICATION WEBBOTS
▸ WEBBOTS THAT SEND EMAIL
▸ WEBBOTS THAT CONVERT A WEBSITE IN AN API
▸ SNIPERS
EXAMPLE 1
CREW SCRAPING
HTTPS://GITHUB.COM/SDELAMO/GEBWEBBOT_GR8CONF
GR8CONF API
▸ Only for agenda, no
sponsors or crew
java -jar gebwebbot_gr8conf-all.jar
crew|sponsors
destinationFolder
outputFilename
sqlite|plist|csv
phantomjs.binary.path
GRADLE SHADOWHTTPS://GITHUB.COM/JOHNRENGELMAN/SHADOW
DESIRED OUTPUT
MODEL
MODEL
TEST YOUR FETCHER
SPOCK - TEST YOUR FETCHER
Define the interesting
parts of your pages in
a concise, maintanable
and extensible manner
GEB PAGES
DIV.CREW
DIV.CREW
DIV.CREW
DIV.CREW
DIV.CREW
DIV.CREW
DIV.CREW
DIV.CREW
DIV.CREW
Modules are re-usable
definitions of content that
can be used across
multiple pages
GEB MODULES
OUTPUT
EXAMPLE 2
SPONSORS SCRAPING
HTTPS://GITHUB.COM/SDELAMO/GEBWEBBOT_GR8CONF
GR8CONF API
▸ Only for agenda, no
sponsors or crew
DIV.SPONSORS
DIV.SPONSORS
H4
DIV.SPONSOR
DIV.SPONSOR
DIV.SPONSOR
H4
DIV.SPONSORS
DIV.SPONSORS
H4
DIV.SPONSOR
DIV.SPONSOR
DIV.SPONSOR
H4
DIV.SPONSORS
DIV.SPONSORS
H4
DIV.SPONSOR
DIV.SPONSOR
DIV.SPONSOR
H4
DIV.SPONSORS
DIV.SPONSORS
H4
DIV.SPONSOR
DIV.SPONSOR
DIV.SPONSOR
H4
GEB EXAMPLE GRADLEHTTPS://GITHUB.COM/GEB/GEB-EXAMPLE-GRADLE
The following commands will launch the tests with the
individual browsers:
./gradlew chromeTest
./gradlew firefoxTest
./gradlew phantomJsTest
To run with all, you can run:
./gradlew test
MARCIN ERDMANN
GEB.CONFIG
EXAMPLE 3
PAGINATION
HTTPS://GITHUB.COM/SDELAMO/WEBBOT_GEB_MEETUP_MEMBERS
DYNAMIC URL
http://www.meetup.com/es-ES/madrid-gug/members/49149882/
BASE URL:
MEETUP GROUP SLUG:
MEMBER ID:
http://www.meetup.com/
madrid-gug
28938802
PAGINATION
.PAGINATION
.NAV-NEXT
PAGINATION
PAGINATION MODULE
HARVEST AND VISIT
HARVEST LINKS
SPLIT LOAD BETWEEN WEBBOTS
HTTPS://HTTPSTATUSDOGS.COM
SPLIT LOAD BETWEEN WEBBOTS
1 2 53 4
11 12 1513 14
21 22 2523 24
31 32 3533 34
41 42 4543 44
6 7 108 9
16 17 2018 19
26 27 3028 29
36 37 4038 39
46 47 5048 49
def ids = 1..50
def webbotIndex = 3
def webbotsInParallel = 6
int total = ids.size()
def sublistsSize = (total / webbotsInParallel) as int
def s = ids.collate(sublistsSize)[webbotIndex]
USER AGENT SPOOFING
USER AGENT SPOOFING
HTTPS://GITHUB.COM/SDELAMO/GEBWEBBOT_USERAGENT
USER AGENT SPOOFING
EXAMPLE 4
HIDDEN CONTENT AND
ON MOUSE OVER EVENTS
FAILS: HIDDEN CONTENT
CALL A JS METHOD
MOVE TO ELEMENT
INCLUDE LIBRARY
UI INTERACTION
KEYBOARD
SLIDERS
STEALTH MEANS SIMULATING HUMAN
PATTERNS
▸ BE KIND TO YOUR RESOURCES
▸ RUN YOUR WEBBOTS DURING BUSY HOURS
▸ DON’T RUN YOUR WEBBOTS AT THE SAME TIME EACH
DAY
▸ DON’T RUN YOUR WEBBOT ON HOLIDAYS AND
WEEKENDS
▸ USE RANDOM, INTRA-FETCH DELAYS
SIMULATE HUMAN CLICK
RHYTHM
?

More Related Content

What's hot

Responsive Design - Wordcamp 2013
Responsive Design - Wordcamp 2013Responsive Design - Wordcamp 2013
Responsive Design - Wordcamp 2013Mirko Santangelo
 
Otto - An Android Event Bus
Otto - An Android Event BusOtto - An Android Event Bus
Otto - An Android Event Bus
Lucas Albuquerque
 
Principles. Misunderstood. Applied
Principles. Misunderstood. AppliedPrinciples. Misunderstood. Applied
Principles. Misunderstood. Applied
Ivan Nemytchenko
 
2020 [pweb] 13 typescript
2020 [pweb] 13 typescript2020 [pweb] 13 typescript
2020 [pweb] 13 typescript
VICTOR JATOBÁ
 
Nuno Godinho Presentation / CloudViews.Org - Cloud Computing Conference 2009
Nuno Godinho Presentation / CloudViews.Org - Cloud Computing Conference 2009Nuno Godinho Presentation / CloudViews.Org - Cloud Computing Conference 2009
Nuno Godinho Presentation / CloudViews.Org - Cloud Computing Conference 2009EuroCloud
 

What's hot (6)

Responsive Design - Wordcamp 2013
Responsive Design - Wordcamp 2013Responsive Design - Wordcamp 2013
Responsive Design - Wordcamp 2013
 
AngularJS
AngularJSAngularJS
AngularJS
 
Otto - An Android Event Bus
Otto - An Android Event BusOtto - An Android Event Bus
Otto - An Android Event Bus
 
Principles. Misunderstood. Applied
Principles. Misunderstood. AppliedPrinciples. Misunderstood. Applied
Principles. Misunderstood. Applied
 
2020 [pweb] 13 typescript
2020 [pweb] 13 typescript2020 [pweb] 13 typescript
2020 [pweb] 13 typescript
 
Nuno Godinho Presentation / CloudViews.Org - Cloud Computing Conference 2009
Nuno Godinho Presentation / CloudViews.Org - Cloud Computing Conference 2009Nuno Godinho Presentation / CloudViews.Org - Cloud Computing Conference 2009
Nuno Godinho Presentation / CloudViews.Org - Cloud Computing Conference 2009
 

Viewers also liked

Groovy & Grails - From Scratch to Production
Groovy & Grails - From Scratch to Production Groovy & Grails - From Scratch to Production
Groovy & Grails - From Scratch to Production
Tal Maayani
 
Keynotefile
KeynotefileKeynotefile
Keynotefile
Andrey Hihlovsky
 
Ratpack On the Docks
Ratpack On the DocksRatpack On the Docks
Ratpack On the Docks
GR8Conf
 
Gretty: Managing Web Containers with Gradle
Gretty: Managing Web Containers with GradleGretty: Managing Web Containers with Gradle
Gretty: Managing Web Containers with Gradle
Andrey Hihlovsky
 
Functional testing your Grails app with GEB
Functional testing your Grails app with GEBFunctional testing your Grails app with GEB
Functional testing your Grails app with GEB
GR8Conf
 
ISTAO Startup Lab
ISTAO Startup Lab ISTAO Startup Lab
ISTAO Startup Lab
Floriano Bonfigli
 
Taller1
Taller1Taller1
Taller1
Ramakaruna
 
Ma Capital Resources Presentation
Ma Capital Resources PresentationMa Capital Resources Presentation
Ma Capital Resources Presentationrva65
 
Huye Hombre, Huye Diario de un preso Fíes
Huye Hombre, Huye Diario de un preso FíesHuye Hombre, Huye Diario de un preso Fíes
Huye Hombre, Huye Diario de un preso Fíes
nuestrocanto
 
Informática
InformáticaInformática
Informáticacharquis
 
Sustainable Times Issue 7
Sustainable Times Issue 7Sustainable Times Issue 7
Sustainable Times Issue 7
John Peters
 
Master thesis pascal_mueller05
Master thesis pascal_mueller05Master thesis pascal_mueller05
Master thesis pascal_mueller05guest39ce4e
 
Devocional Job - Episodio 7
Devocional Job - Episodio 7Devocional Job - Episodio 7
Devocional Job - Episodio 7IglesiaMuf
 
r_villalobos_portfolio-EN
r_villalobos_portfolio-ENr_villalobos_portfolio-EN
r_villalobos_portfolio-ENrobvj09
 
Presentacion Prensa MBA del Siglo XXI
Presentacion Prensa MBA del Siglo XXIPresentacion Prensa MBA del Siglo XXI
Presentacion Prensa MBA del Siglo XXImbadelsigloxxi
 
Delha Affairs 1960
Delha Affairs 1960Delha Affairs 1960
Delha Affairs 1960
Wilson Therik
 
Best Practice in PROFIBUS Diagnostics
Best Practice in PROFIBUS DiagnosticsBest Practice in PROFIBUS Diagnostics
Best Practice in PROFIBUS Diagnostics
Bernd Kremer
 

Viewers also liked (20)

Groovy & Grails - From Scratch to Production
Groovy & Grails - From Scratch to Production Groovy & Grails - From Scratch to Production
Groovy & Grails - From Scratch to Production
 
Keynotefile
KeynotefileKeynotefile
Keynotefile
 
Ratpack On the Docks
Ratpack On the DocksRatpack On the Docks
Ratpack On the Docks
 
Gretty: Managing Web Containers with Gradle
Gretty: Managing Web Containers with GradleGretty: Managing Web Containers with Gradle
Gretty: Managing Web Containers with Gradle
 
Functional testing your Grails app with GEB
Functional testing your Grails app with GEBFunctional testing your Grails app with GEB
Functional testing your Grails app with GEB
 
ISTAO Startup Lab
ISTAO Startup Lab ISTAO Startup Lab
ISTAO Startup Lab
 
Taller1
Taller1Taller1
Taller1
 
Ma Capital Resources Presentation
Ma Capital Resources PresentationMa Capital Resources Presentation
Ma Capital Resources Presentation
 
Huye Hombre, Huye Diario de un preso Fíes
Huye Hombre, Huye Diario de un preso FíesHuye Hombre, Huye Diario de un preso Fíes
Huye Hombre, Huye Diario de un preso Fíes
 
Informática
InformáticaInformática
Informática
 
Sustainable Times Issue 7
Sustainable Times Issue 7Sustainable Times Issue 7
Sustainable Times Issue 7
 
Master thesis pascal_mueller05
Master thesis pascal_mueller05Master thesis pascal_mueller05
Master thesis pascal_mueller05
 
Goethe werther
Goethe   wertherGoethe   werther
Goethe werther
 
Integers
IntegersIntegers
Integers
 
Devocional Job - Episodio 7
Devocional Job - Episodio 7Devocional Job - Episodio 7
Devocional Job - Episodio 7
 
r_villalobos_portfolio-EN
r_villalobos_portfolio-ENr_villalobos_portfolio-EN
r_villalobos_portfolio-EN
 
Revista be energy, marzo de 2012 reportaje ipur
Revista be energy, marzo de 2012 reportaje ipurRevista be energy, marzo de 2012 reportaje ipur
Revista be energy, marzo de 2012 reportaje ipur
 
Presentacion Prensa MBA del Siglo XXI
Presentacion Prensa MBA del Siglo XXIPresentacion Prensa MBA del Siglo XXI
Presentacion Prensa MBA del Siglo XXI
 
Delha Affairs 1960
Delha Affairs 1960Delha Affairs 1960
Delha Affairs 1960
 
Best Practice in PROFIBUS Diagnostics
Best Practice in PROFIBUS DiagnosticsBest Practice in PROFIBUS Diagnostics
Best Practice in PROFIBUS Diagnostics
 

Similar to Scraping with Geb

Grooscript gr8conf 2015
Grooscript gr8conf 2015Grooscript gr8conf 2015
Grooscript gr8conf 2015
Jorge Franco Leza
 
SEO with Google Analytics - Organic Keywords
SEO with Google Analytics - Organic KeywordsSEO with Google Analytics - Organic Keywords
SEO with Google Analytics - Organic Keywords
Tobias Kraeft
 
Building and Maintaining Genealogical Websites
Building and Maintaining Genealogical WebsitesBuilding and Maintaining Genealogical Websites
Building and Maintaining Genealogical Websites
GenealogyMedia.com
 
SEO 101 - Google Page Speed Insights Explained
SEO 101 - Google Page Speed Insights Explained SEO 101 - Google Page Speed Insights Explained
SEO 101 - Google Page Speed Insights Explained
Steve Weber
 
Going All-In On AMP
Going All-In On AMPGoing All-In On AMP
Going All-In On AMP
Benu Aggarwal
 
Herramientas web 2.0. Mi PLE
Herramientas web 2.0. Mi PLEHerramientas web 2.0. Mi PLE
Herramientas web 2.0. Mi PLE
Mónica Vallecillos
 
Developing web applications in 2010
Developing web applications in 2010Developing web applications in 2010
Developing web applications in 2010
Ignacio Coloma
 
Reverse Ajax
Reverse AjaxReverse Ajax
Reverse Ajax
Mathieu Carbou
 
Nodevember 2017: AMP Primer
Nodevember 2017: AMP PrimerNodevember 2017: AMP Primer
Nodevember 2017: AMP Primer
Lisa Huang
 
Progressing JavaScript and Apps the Web way…
 Progressing JavaScript and Apps the Web way…  Progressing JavaScript and Apps the Web way…
Progressing JavaScript and Apps the Web way…
Christian Heilmann
 
Google Apps Script: The Authentic{ated} Playground
Google Apps Script: The Authentic{ated} PlaygroundGoogle Apps Script: The Authentic{ated} Playground
Google Apps Script: The Authentic{ated} Playground
Martin Hawksey
 
WebGL, WebVR and the Metaverse
WebGL, WebVR and the MetaverseWebGL, WebVR and the Metaverse
WebGL, WebVR and the Metaverse
Tony Parisi
 
Blazing Fast eCommerce with Gatsby, WordPress, and WooCommerce by Muhammad Mu...
Blazing Fast eCommerce with Gatsby, WordPress, and WooCommerce by Muhammad Mu...Blazing Fast eCommerce with Gatsby, WordPress, and WooCommerce by Muhammad Mu...
Blazing Fast eCommerce with Gatsby, WordPress, and WooCommerce by Muhammad Mu...
rtCamp
 
Amp your site an intro to accelerated mobile pages
Amp your site  an intro to accelerated mobile pagesAmp your site  an intro to accelerated mobile pages
Amp your site an intro to accelerated mobile pages
Robert McFrazier
 
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
Aaron Gustafson
 
Google App Engine for PHP
Google App Engine for PHP Google App Engine for PHP
Google App Engine for PHP
Eric Johnson
 
NY WebPerf Sept '22 - Performance Mistakes - An HTTP Archive Deep Dive
NY WebPerf Sept '22 - Performance Mistakes - An HTTP Archive Deep DiveNY WebPerf Sept '22 - Performance Mistakes - An HTTP Archive Deep Dive
NY WebPerf Sept '22 - Performance Mistakes - An HTTP Archive Deep Dive
Paul Calvano
 
February 2018: Sustainable UX Conference
February 2018: Sustainable UX ConferenceFebruary 2018: Sustainable UX Conference
February 2018: Sustainable UX Conference
Lisa Huang
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcaseYukio Andoh
 

Similar to Scraping with Geb (20)

Grooscript gr8conf 2015
Grooscript gr8conf 2015Grooscript gr8conf 2015
Grooscript gr8conf 2015
 
SEO with Google Analytics - Organic Keywords
SEO with Google Analytics - Organic KeywordsSEO with Google Analytics - Organic Keywords
SEO with Google Analytics - Organic Keywords
 
Building and Maintaining Genealogical Websites
Building and Maintaining Genealogical WebsitesBuilding and Maintaining Genealogical Websites
Building and Maintaining Genealogical Websites
 
SEO 101 - Google Page Speed Insights Explained
SEO 101 - Google Page Speed Insights Explained SEO 101 - Google Page Speed Insights Explained
SEO 101 - Google Page Speed Insights Explained
 
Going All-In On AMP
Going All-In On AMPGoing All-In On AMP
Going All-In On AMP
 
Herramientas web 2.0. Mi PLE
Herramientas web 2.0. Mi PLEHerramientas web 2.0. Mi PLE
Herramientas web 2.0. Mi PLE
 
Developing web applications in 2010
Developing web applications in 2010Developing web applications in 2010
Developing web applications in 2010
 
Reverse Ajax
Reverse AjaxReverse Ajax
Reverse Ajax
 
Nodevember 2017: AMP Primer
Nodevember 2017: AMP PrimerNodevember 2017: AMP Primer
Nodevember 2017: AMP Primer
 
Progressing JavaScript and Apps the Web way…
 Progressing JavaScript and Apps the Web way…  Progressing JavaScript and Apps the Web way…
Progressing JavaScript and Apps the Web way…
 
Google Apps Script: The Authentic{ated} Playground
Google Apps Script: The Authentic{ated} PlaygroundGoogle Apps Script: The Authentic{ated} Playground
Google Apps Script: The Authentic{ated} Playground
 
WebGL, WebVR and the Metaverse
WebGL, WebVR and the MetaverseWebGL, WebVR and the Metaverse
WebGL, WebVR and the Metaverse
 
Blazing Fast eCommerce with Gatsby, WordPress, and WooCommerce by Muhammad Mu...
Blazing Fast eCommerce with Gatsby, WordPress, and WooCommerce by Muhammad Mu...Blazing Fast eCommerce with Gatsby, WordPress, and WooCommerce by Muhammad Mu...
Blazing Fast eCommerce with Gatsby, WordPress, and WooCommerce by Muhammad Mu...
 
Amp your site an intro to accelerated mobile pages
Amp your site  an intro to accelerated mobile pagesAmp your site  an intro to accelerated mobile pages
Amp your site an intro to accelerated mobile pages
 
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
 
Google App Engine for PHP
Google App Engine for PHP Google App Engine for PHP
Google App Engine for PHP
 
NY WebPerf Sept '22 - Performance Mistakes - An HTTP Archive Deep Dive
NY WebPerf Sept '22 - Performance Mistakes - An HTTP Archive Deep DiveNY WebPerf Sept '22 - Performance Mistakes - An HTTP Archive Deep Dive
NY WebPerf Sept '22 - Performance Mistakes - An HTTP Archive Deep Dive
 
February 2018: Sustainable UX Conference
February 2018: Sustainable UX ConferenceFebruary 2018: Sustainable UX Conference
February 2018: Sustainable UX Conference
 
RWD
RWDRWD
RWD
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcase
 

More from GR8Conf

DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your Team
GR8Conf
 
Creating and testing REST contracts with Accurest Gradle
Creating and testing REST contracts with Accurest Gradle Creating and testing REST contracts with Accurest Gradle
Creating and testing REST contracts with Accurest Gradle
GR8Conf
 
Mum, I want to be a Groovy full-stack developer
Mum, I want to be a Groovy full-stack developerMum, I want to be a Groovy full-stack developer
Mum, I want to be a Groovy full-stack developer
GR8Conf
 
Metaprogramming with Groovy
Metaprogramming with GroovyMetaprogramming with Groovy
Metaprogramming with Groovy
GR8Conf
 
Groovy Powered Clean Code
Groovy Powered Clean CodeGroovy Powered Clean Code
Groovy Powered Clean Code
GR8Conf
 
Cut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature pluginsCut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature plugins
GR8Conf
 
Performance tuning Grails applications
 Performance tuning Grails applications Performance tuning Grails applications
Performance tuning Grails applications
GR8Conf
 
Ratpack and Grails 3
 Ratpack and Grails 3 Ratpack and Grails 3
Ratpack and Grails 3
GR8Conf
 
Grails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloudGrails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloud
GR8Conf
 
Deploying, Scaling, and Running Grails on AWS and VPC
Deploying, Scaling, and Running Grails on AWS and VPCDeploying, Scaling, and Running Grails on AWS and VPC
Deploying, Scaling, and Running Grails on AWS and VPC
GR8Conf
 
The Grails introduction workshop
The Grails introduction workshopThe Grails introduction workshop
The Grails introduction workshop
GR8Conf
 
Idiomatic spock
Idiomatic spockIdiomatic spock
Idiomatic spock
GR8Conf
 
The Groovy Ecosystem Revisited
The Groovy Ecosystem RevisitedThe Groovy Ecosystem Revisited
The Groovy Ecosystem Revisited
GR8Conf
 
Groovy 3 and the new Groovy Meta Object Protocol in examples
Groovy 3 and the new Groovy Meta Object Protocol in examplesGroovy 3 and the new Groovy Meta Object Protocol in examples
Groovy 3 and the new Groovy Meta Object Protocol in examples
GR8Conf
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
GR8Conf
 
CRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual MachineCRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual Machine
GR8Conf
 
Grooscript gr8conf
Grooscript gr8confGrooscript gr8conf
Grooscript gr8conf
GR8Conf
 
CRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual MachineCRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual Machine
GR8Conf
 
Jan reher may 2013
Jan reher may 2013Jan reher may 2013
Jan reher may 2013
GR8Conf
 
Good Form - complex web forms made Groovy
Good Form - complex web forms made GroovyGood Form - complex web forms made Groovy
Good Form - complex web forms made Groovy
GR8Conf
 

More from GR8Conf (20)

DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your Team
 
Creating and testing REST contracts with Accurest Gradle
Creating and testing REST contracts with Accurest Gradle Creating and testing REST contracts with Accurest Gradle
Creating and testing REST contracts with Accurest Gradle
 
Mum, I want to be a Groovy full-stack developer
Mum, I want to be a Groovy full-stack developerMum, I want to be a Groovy full-stack developer
Mum, I want to be a Groovy full-stack developer
 
Metaprogramming with Groovy
Metaprogramming with GroovyMetaprogramming with Groovy
Metaprogramming with Groovy
 
Groovy Powered Clean Code
Groovy Powered Clean CodeGroovy Powered Clean Code
Groovy Powered Clean Code
 
Cut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature pluginsCut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature plugins
 
Performance tuning Grails applications
 Performance tuning Grails applications Performance tuning Grails applications
Performance tuning Grails applications
 
Ratpack and Grails 3
 Ratpack and Grails 3 Ratpack and Grails 3
Ratpack and Grails 3
 
Grails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloudGrails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloud
 
Deploying, Scaling, and Running Grails on AWS and VPC
Deploying, Scaling, and Running Grails on AWS and VPCDeploying, Scaling, and Running Grails on AWS and VPC
Deploying, Scaling, and Running Grails on AWS and VPC
 
The Grails introduction workshop
The Grails introduction workshopThe Grails introduction workshop
The Grails introduction workshop
 
Idiomatic spock
Idiomatic spockIdiomatic spock
Idiomatic spock
 
The Groovy Ecosystem Revisited
The Groovy Ecosystem RevisitedThe Groovy Ecosystem Revisited
The Groovy Ecosystem Revisited
 
Groovy 3 and the new Groovy Meta Object Protocol in examples
Groovy 3 and the new Groovy Meta Object Protocol in examplesGroovy 3 and the new Groovy Meta Object Protocol in examples
Groovy 3 and the new Groovy Meta Object Protocol in examples
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
 
CRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual MachineCRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual Machine
 
Grooscript gr8conf
Grooscript gr8confGrooscript gr8conf
Grooscript gr8conf
 
CRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual MachineCRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual Machine
 
Jan reher may 2013
Jan reher may 2013Jan reher may 2013
Jan reher may 2013
 
Good Form - complex web forms made Groovy
Good Form - complex web forms made GroovyGood Form - complex web forms made Groovy
Good Form - complex web forms made Groovy
 

Recently uploaded

How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 

Recently uploaded (20)

How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 

Scraping with Geb