Einf¨hrung                           u                 Mojo::UserAgent        HTML/JSON-Verarbeitung          auf der Komm...
Einf¨hrung                                    u                          Mojo::UserAgent                 HTML/JSON-Verarbe...
Einf¨hrung                                  u                                           HTTP-Requests in Perl?            ...
Einf¨hrung                                u                                         HTTP-Requests in Perl?                ...
Einf¨hrung                                 u                                          HTTP-Requests in Perl?              ...
Einf¨hrung                                  u                                           HTTP-Requests in Perl?            ...
Einf¨hrung                                     u                                              HTTP-Requests in Perl?      ...
Einf¨hrung                                    u        ¨                                             Uberblick            ...
Einf¨hrung                                         u        ¨                                                  Uberblick  ...
Einf¨hrung                                 u        ¨                                          Uberblick                  ...
Einf¨hrung                                   u        ¨                                            Uberblick              ...
Einf¨hrung                                   u        ¨                                            Uberblick              ...
Einf¨hrung                                     u        ¨                                              Uberblick          ...
Einf¨hrung                                      u        ¨                                               Uberblick        ...
Einf¨hrung                                      u        ¨                                               Uberblick        ...
Einf¨hrung                                  u        ¨                                           Uberblick                ...
Einf¨hrung                                    u                          Mojo::UserAgent    Mojo::DOM                 HTML...
Einf¨hrung                                u                      Mojo::UserAgent    Mojo::DOM             HTML/JSON-Verarb...
Einf¨hrung                                u                      Mojo::UserAgent    Mojo::DOM             HTML/JSON-Verarb...
Einf¨hrung                                     u                           Mojo::UserAgent    Mojo::DOM                  H...
Einf¨hrung                                 u                       Mojo::UserAgent    Mojo::DOM              HTML/JSON-Ver...
Einf¨hrung                                      u                            Mojo::UserAgent    Mojo::DOM                 ...
Einf¨hrung                                  u                        Mojo::UserAgent    Mojo::DOM               HTML/JSON-...
Einf¨hrung                                    u                                             mojo get                      ...
Einf¨hrung                                   u                                            mojo get                        ...
Einf¨hrung                                  u                                           mojo get                        Mo...
Einf¨hrung                                      u                                               mojo get                  ...
Einf¨hrung                                  u                                           mojo get                        Mo...
Upcoming SlideShare
Loading in...5
×

Mojo::UserAgent

1,590

Published on

*GERMAN*

Einfuehrung in Mojo::UserAgent (und Mojo::DOM)

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,590
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Mojo::UserAgent"

  1. 1. Einf¨hrung u Mojo::UserAgent HTML/JSON-Verarbeitung auf der Kommandozeile Mojo::UserAgentparallele HTTP-Anfragen, Kommandozeilen-Verwendung Uwe V¨lker o XING AG 05.03.2012 Uwe V¨lker o Mojo::UserAgent
  2. 2. Einf¨hrung u Mojo::UserAgent HTML/JSON-Verarbeitung auf der Kommandozeile1 Einf¨hrung u2 Mojo::UserAgent3 HTML/JSON-Verarbeitung4 auf der Kommandozeile Uwe V¨lker o Mojo::UserAgent
  3. 3. Einf¨hrung u HTTP-Requests in Perl? Mojo::UserAgent parallele HTTP-Requests HTML/JSON-Verarbeitung Mojo::UserAgent auf der Kommandozeile1 Einf¨hrung u HTTP-Requests in Perl? parallele HTTP-Requests Mojo::UserAgent2 Mojo::UserAgent3 HTML/JSON-Verarbeitung4 auf der Kommandozeile Uwe V¨lker o Mojo::UserAgent
  4. 4. Einf¨hrung u HTTP-Requests in Perl? Mojo::UserAgent parallele HTTP-Requests HTML/JSON-Verarbeitung Mojo::UserAgent auf der KommandozeileHTTP-Requests in Perl? LWP::UserAgent LWP::Simple Uwe V¨lker o Mojo::UserAgent
  5. 5. Einf¨hrung u HTTP-Requests in Perl? Mojo::UserAgent parallele HTTP-Requests HTML/JSON-Verarbeitung Mojo::UserAgent auf der KommandozeileHTTP-Requests in Perl? LWP::UserAgent LWP::Simple HTTP::Lite HTTP::Client (nur GET!) Uwe V¨lker o Mojo::UserAgent
  6. 6. Einf¨hrung u HTTP-Requests in Perl? Mojo::UserAgent parallele HTTP-Requests HTML/JSON-Verarbeitung Mojo::UserAgent auf der Kommandozeileparallele HTTP-Requests LWP::Parallel::UserAgent (sehr alt - 2004) HTTP::Async AnyEvent::HTTP, POE::Component::Client::HTTP WWW::Curl::Multi Uwe V¨lker o Mojo::UserAgent
  7. 7. Einf¨hrung u HTTP-Requests in Perl? Mojo::UserAgent parallele HTTP-Requests HTML/JSON-Verarbeitung Mojo::UserAgent auf der KommandozeileMojo::UserAgent Wer sich nicht daran st¨rt, Mojolicious zu installieren, bekommt o einen m¨chtigen HTTP-Klienten: a asynchron HTTP 1.1 WebSocket-Unterst¨tzung u Uwe V¨lker o Mojo::UserAgent
  8. 8. Einf¨hrung u ¨ Uberblick Mojo::UserAgent non-blocking HTML/JSON-Verarbeitung parallele Anfragen auf der Kommandozeile1 Einf¨hrung u2 Mojo::UserAgent ¨ Uberblick non-blocking parallele Anfragen3 HTML/JSON-Verarbeitung4 auf der Kommandozeile Uwe V¨lker o Mojo::UserAgent
  9. 9. Einf¨hrung u ¨ Uberblick Mojo::UserAgent non-blocking HTML/JSON-Verarbeitung parallele Anfragen auf der Kommandozeile¨Uberblick #! / u s r / b i n / p e r l use s t r i c t ; use w a r n i n g s ; use Mojo : : U s e r A g e n t ; my $ua=Mojo : : UserAgent −>new ( m a x r e d i r e c t s =>5); my $ t x=$ua−>g e t ( ’ h t t p : / /www. p e r l w o r k s h o p . de / ’ ) ; p r i n t $tx −>r e s −>body ; Uwe V¨lker o Mojo::UserAgent
  10. 10. Einf¨hrung u ¨ Uberblick Mojo::UserAgent non-blocking HTML/JSON-Verarbeitung parallele Anfragen auf der KommandozeileHTTP-Methoden get post, post form put delete head Uwe V¨lker o Mojo::UserAgent
  11. 11. Einf¨hrung u ¨ Uberblick Mojo::UserAgent non-blocking HTML/JSON-Verarbeitung parallele Anfragen auf der Kommandozeiletransaction-Objekt req - request-Objekt res - response-Objekt Uwe V¨lker o Mojo::UserAgent
  12. 12. Einf¨hrung u ¨ Uberblick Mojo::UserAgent non-blocking HTML/JSON-Verarbeitung parallele Anfragen auf der Kommandozeiletransaction-Objekt req - request-Objekt res - response-Objekt local address, local port remote address, remote port Uwe V¨lker o Mojo::UserAgent
  13. 13. Einf¨hrung u ¨ Uberblick Mojo::UserAgent non-blocking HTML/JSON-Verarbeitung parallele Anfragen auf der Kommandozeilenon-blocking $ua−>g e t ( ’ h t t p : / / p e r l . o r g ’ => sub { my ( $ua , $ t x ) = @ ; p r i n t $tx −>r e s −>body ; Mojo : : IOLoop−>s t o p ; }); Mojo : : IOLoop−>s t a r t ; Uwe V¨lker o Mojo::UserAgent
  14. 14. Einf¨hrung u ¨ Uberblick Mojo::UserAgent non-blocking HTML/JSON-Verarbeitung parallele Anfragen auf der KommandozeileMojo::IOLoop minimalistic IO loop building block for non-blocking TCP clients and servers start, stop Uwe V¨lker o Mojo::UserAgent
  15. 15. Einf¨hrung u ¨ Uberblick Mojo::UserAgent non-blocking HTML/JSON-Verarbeitung parallele Anfragen auf der Kommandozeileparallele Anfragen my $ d e l a y = Mojo : : IOLoop−>d e l a y ; f o r e a c h my $ u r l ( ’ m o j o l i c i o . u s ’ , ’ cpan . o r g ’ ) { $ d e l a y −>b e g i n ; $ua−>g e t ( $ u r l => sub { my ( $ua , $ t x ) = @ ; $ d e l a y −>end ( $tx −>r e s −>dom−>a t ( ’ t i t l e ’)−> t e x t ) ; }); } my @ t i t l e s = $ d e l a y −>wait ; Uwe V¨lker o Mojo::UserAgent
  16. 16. Einf¨hrung u ¨ Uberblick Mojo::UserAgent non-blocking HTML/JSON-Verarbeitung parallele Anfragen auf der KommandozeileMojo::IOLoop::Delay synchronize events begin - increase event counter end - decrease event counter (and set return values) wait - wait for ”finish” event (and return results) Uwe V¨lker o Mojo::UserAgent
  17. 17. Einf¨hrung u Mojo::UserAgent Mojo::DOM HTML/JSON-Verarbeitung Mojo::JSON::Pointer auf der Kommandozeile1 Einf¨hrung u2 Mojo::UserAgent3 HTML/JSON-Verarbeitung Mojo::DOM Mojo::JSON::Pointer4 auf der Kommandozeile Uwe V¨lker o Mojo::UserAgent
  18. 18. Einf¨hrung u Mojo::UserAgent Mojo::DOM HTML/JSON-Verarbeitung Mojo::JSON::Pointer auf der KommandozeileMojo::DOM HTML5/XML DOM-Parser klingt wie HTML::TreeBuilder? Uwe V¨lker o Mojo::UserAgent
  19. 19. Einf¨hrung u Mojo::UserAgent Mojo::DOM HTML/JSON-Verarbeitung Mojo::JSON::Pointer auf der KommandozeileMojo::DOM HTML5/XML DOM-Parser klingt wie HTML::TreeBuilder? Unterst¨tzung fuer CSS3-Selektoren u mehr wie HTML::TreeBuilder::XPath Uwe V¨lker o Mojo::UserAgent
  20. 20. Einf¨hrung u Mojo::UserAgent Mojo::DOM HTML/JSON-Verarbeitung Mojo::JSON::Pointer auf der KommandozeileMojo::DOM use Mojo : :DOM; my $dom = Mojo : : DOM −>new ( ’<d i v i d =”a”>A</d i v ><d i v i d =”b”>B</d i v > ’ ) ; p r i n t $dom−>a t ( ’#b ’)−> t e x t ; $dom−>d i v −>[1]−> r e p l a c e c o n t e n t ( ’ f o o ’ ) ; p r i n t $dom ; # <d i v i d =”a”>A</d i v ><d i v i d =”b”>foo </d i v > Uwe V¨lker o Mojo::UserAgent
  21. 21. Einf¨hrung u Mojo::UserAgent Mojo::DOM HTML/JSON-Verarbeitung Mojo::JSON::Pointer auf der KommandozeileMojo::DOM new/parse - DOM aufbauen Suche: at, find Bewegung: root, children, parent, div, p (Tags) Extraktion: attr, text Manipulation: append, prepend, replace Uwe V¨lker o Mojo::UserAgent
  22. 22. Einf¨hrung u Mojo::UserAgent Mojo::DOM HTML/JSON-Verarbeitung Mojo::JSON::Pointer auf der KommandozeileMojo::JSON::Pointer use Mojo : : JSON : : P o i n t e r ; my $p = Mojo : : JSON : : P o i n t e r −>new ; s a y $p−>g e t ( { f o o => [ 2 3 , ’ b a r ’ ] } , ’ / f o o /1 ’ ) ; i f ( $p−>c o n t a i n s ( { f o o => [ 2 3 , ’ b a r ’ ] } , ’ / f o o ’ ) ) { s a y ’ C o n t a i n s ”/ f o o ” . ’ ; } Uwe V¨lker o Mojo::UserAgent
  23. 23. Einf¨hrung u Mojo::UserAgent Mojo::DOM HTML/JSON-Verarbeitung Mojo::JSON::Pointer auf der KommandozeileMojo::JSON::Pointer http://tools.ietf.org/html/ draft-pbryan-zyp-json-pointer-02 get - extract parts of the data structure contains - check if a sub structure is present Uwe V¨lker o Mojo::UserAgent
  24. 24. Einf¨hrung u mojo get Mojo::UserAgent CSS-Selektoren HTML/JSON-Verarbeitung JSON-Pointer auf der Kommandozeile1 Einf¨hrung u2 Mojo::UserAgent3 HTML/JSON-Verarbeitung4 auf der Kommandozeile mojo get CSS-Selektoren JSON-Pointer Uwe V¨lker o Mojo::UserAgent
  25. 25. Einf¨hrung u mojo get Mojo::UserAgent CSS-Selektoren HTML/JSON-Verarbeitung JSON-Pointer auf der Kommandozeilemojo get mojo get -r perl.org mojo get -M POST -c body example.org mojo get -r perl.org ’#short lists .list p a’ 0 mojo get http://search.twitter.com/search.json /error Uwe V¨lker o Mojo::UserAgent
  26. 26. Einf¨hrung u mojo get Mojo::UserAgent CSS-Selektoren HTML/JSON-Verarbeitung JSON-Pointer auf der KommandozeileCSS-Selektoren zusaetzliche Parameter nach der URL Selektor(en) Kommandos (text, all, attr, id) Uwe V¨lker o Mojo::UserAgent
  27. 27. Einf¨hrung u mojo get Mojo::UserAgent CSS-Selektoren HTML/JSON-Verarbeitung JSON-Pointer auf der KommandozeileJSON-Pointer Content-Type muss JSON sein / ... / ... Hash-Key oder Array-Index Uwe V¨lker o Mojo::UserAgent
  28. 28. Einf¨hrung u mojo get Mojo::UserAgent CSS-Selektoren HTML/JSON-Verarbeitung JSON-Pointer auf der KommandozeileMojo::UserAgent Fragen? http://groups.google.com/group/mojolicious #mojo on irc.perl.org Einfach ausprobieren! Uwe V¨lker o Mojo::UserAgent
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×