Pakiet XML Czym jest i z czym się je?



Podobne dokumenty
Ministerstwo Finansów

Komunikacja i wymiana danych

Format danych adnotacji do tytułów wykonawczych przekazywanych do organów egzekucyjnych przez epuap w związku ze zbiegiem egzekucji

Model semistrukturalny

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

Otwarte protokoły wymiany informacji w systemach ITS

Instrukcja integracji z portalem ogłoszeń praca.24portal.pl

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Programowanie komponentowe

O stronach www, html itp..

Format danych adnotacji do tytułów wykonawczych przekazywanych do organów egzekucyjnych przez epuap w związku ze zbiegiem egzekucji

WYKŁAD 3 XML DOM XML DOCUMENT OBJECT MODEL CZĘŚĆ 1

Informację na temat struktury pliku XML

Specyfikacja HTTP API. Wersja 1.6

Zaawansowane aplikacje WWW - laboratorium

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

XML INFORMACJE NA TEMAT STRUKTURY ( )

Podstawy JavaScript ćwiczenia

Rola języka XML narzędziem

HTML (HyperText Markup Language) hipertekstowy język znaczników

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

NoSQL Not Only SQL: CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Przetwarzanie dokumentów i widoków.

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Instrukcja obsługi narzędzia API

Ministerstwo Finansów

Terytorialna analiza danych

XML extensible Markup Language 7

Historia kodowania i format plików XML. Jolanta Bachan

Dokumentacja techniczna RockPay

2 Podstawy tworzenia stron internetowych

UCHWAŁA NR LII/1042/17 RADY MIASTA OPOLA. z dnia 30 listopada 2017 r.

Dokumentacja Użytkownika Systemu. Integracja z Okazje.info, Skąpiec, Sklepy24

Programowanie internetowe

XML extensible Markup Language 3

29. Poprawność składniowa i strukturalna dokumentu XML

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

Informatyka (10) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego i Mostów p. 4 Hydro

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

UCHWAŁA NR... RADY MIASTA OPOLA. z dnia r.

REFERAT O PRACY DYPLOMOWEJ

IOF INTERNET OFFER FORMAT

Tomasz Grześ. Systemy zarządzania treścią, cz. II

Dokumentacja Użytkownika Systemu

Wykład 03 JavaScript. Michał Drabik

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

UCHWAŁA NR... RADY MIASTA OPOLA. z dnia r.

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Elementarz HTML i CSS

Rozszerzenie funkcjonalności systemów wiki w oparciu o wtyczki i Prolog

Bazy danych i strony WWW

METODY REPREZENTACJI INFORMACJI

Języki programowania wysokiego poziomu WWW

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

Dokumentacja smsapi wersja 1.4

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

Rys.2.1. Drzewo modelu DOM [1]

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Podstawy technologii WWW

Elektroniczna wymiana danych (EDI) jest to: - wymiana informacji pomiędzy komputerami, z użyciem powszechnie akceptowanych standardów

Instrukcja obsługi Modułu Payu dla Moodle 2.x

HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop Spis treści

STRONY INTERNETOWE mgr inż. Adrian Zapała

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

XML extensible Markup Language. Paweł Chodkiewicz

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Podstawy (X)HTML i CSS

QualitySpy moduł reports

Dokumentacja panelu Klienta

INFORMACJE NA TEMAT STRUKTURY PLIKU XML

Dokumenty SEDU składają się z dwóch części: Opisu sprawy Formularza elektronicznego

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

Integracja z Facebook. Wersja 7.2.4

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Specyfikacja techniczna. mprofi Interfejs API

Wybrane działy Informatyki Stosowanej

MS Visual Studio 2005 Team Suite - Performance Tool

Laboratorium 1 Wprowadzenie do PHP

Prezentacja i transformacja

Atrybuty SMS. Nazwa Twojej firmy lub produktu w SMS-ie podniesie prestiż Twojej wiadomości

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Facebook i R są teraz znajomymi

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Automatyzacja Testowania w WEB 2.0

Bazy danych. dr Radosław Matusik. radmat

Internacjonalizacja i lokalizowanie aplikacji internetowych wg

XML extensible Markup Language. część 5

CouchDB. Michał Nowikowski

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Microsoft Small Basic

ŁÓDŹ.

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Transkrypt:

Pakiet XML Czym jest i z czym się je? mgr Maciej Beręsewicz Katedra Statystyki, UE w Poznaniu

Spis treści 1. Web scraping 2. XML 3. XPath 4. Pakiet XML 4.1 Allegro.pl 4.2 Last.fm 4.3 Poznan.gumtree.pl 5. Podsumowanie 6. Przydatne Linki 7. Kontakt

Web scraping Web scraping Web scraping jest metodą ekstrakcji informacji ze stron internetowych. Symuluje poruszanie się człowieka po stronach internetowych wykorzystując między innymi pająka internetowego. Wykorzystywane głównie do pobierania danych w celu ich analizy, porównywania cen, tworzenia zbiorczych stron internetowych czy integracji źródeł danych.

XML Język XML XML (ang.extensible Markup Language, pol.rozszerzalny Język Znaczników) uniwersalny język formalny przeznaczony do reprezentowania różnych danych w strukturyzowalny sposób. XML jest niezależny od platformy, co umożliwia łatwą wymianę dokumentów pomiędzy heterogenicznymi (różnymi) systemami i znacząco przyczyniło się do popularności tego języka w dobie Internetu. XML jest standardem rekomendowanym oraz specyfikowanym przez organizację W3C. Przykładowy kod last.fm <? xml v e r s i o n= 1. 0 e n c o d i n g= u t f 8?> <b o o k s t o r e> <book c a t e g o r y= COOKING > < t i t l e l a n g= en >Everyday I t a l i a n</ t i t l e> <a u t h o r>giada De L a u r e n t i i s</ a u t h o r> <y e a r>2005</ y e a r> <p r i c e>3 0. 0 0</ p r i c e> </ book> <book c a t e g o r y= CHILDREN > < t i t l e l a n g= en >Harry P o t t e r</ t i t l e> <a u t h o r>j K. Rowling</ a u t h o r> <y e a r>2005</ y e a r> <p r i c e>2 9. 9 9</ p r i c e> </ book> </ b o o k s t o r e>

XPath XPath XPath (ang. XML Path Language, w wolnym tłumaczeniu Język ścieżek XML, Język ścieżek rozszerzalnego języka znaczników) język służący do adresowania części dokumentu XML. Dzięki temu możliwe jest adresowanie po nazwie, obecności atrybutów (w ogóle), atrybutów, które zawierają określone wartości, określone węzły (parent, child). Przykładowy kod xml. s e t P r o p e r t y ( S e l e c t i o n L a n g u a g e, XPath ) ; xml. s e l e c t N o d e s ( / b o o k s t o r e / book [ 1 ] / t i t l e ) ; xml. s e l e c t N o d e s ( / b o o k s t o r e / book / p r i c e / t e x t ( ) ) ; xml. s e l e c t N o d e s ( / b o o k s t o r e / book [ p r i c e >35]/ p r i c e ) ; xml. s e l e c t N o d e s ( / b o o k s t o r e / book [ p r i c e >35]/ t i t l e ) ;

Pakiet XML Duncan Temple Lang Pakiet XML http://anson.ucdavis.edu/~duncan/ Obecnie dostępny w wersji 3.9-4 opis: http://cran.r-project.org/web/ packages/xml/xml.pdf Jest jednym z wielu pakietów stworzonym przez Duncana, Służy do tworzenia, zarządzania oraz przetwarzania plików XML, resztę pakietów (zwłaszcza RCurl) można znaleźć pod adresem http://www.omegahat.org/

Przydatne funkcje Pobieranie danych htmlparse(x,encoding,...) funkcja do pobierania stron internetowych w formie pliku XML (zachowanie struktury pliku). X określamy jako adres http danej strony internetowej, funkcja ma dużo opcji, jednak encoding jest jedną z ważniejszych jeżeli chcemy zachować kodowanie strony, xmlparse(x,astext,encoding,...) funkcja do pobierania plików XML, zapisuje cały plik po jego ściągnięciu w pamięci. Podobną funkcją jest xmltreeparse(x,...), readhtmltable(x,header=na,which=integer(),colclasses=null,..) funkcja do pobierania tabel ze stron internetowych lub plików tekstowych o strukturze pliku XML/HTML. Najważniejszy z punktu naszego punktu widzenia jest parametr which określający, którą tabelę należy pobrać. Pozostałe argumenty funkcji tak jak w as.data.frame. Przetwarzanie danych XPathApply(doc,path) funkcja do pobierania danych argumentów z pliku klasy XMLInternalDocument lub HTMLInternalDocument, które muszą być argumentem określonym jako doc. Parametr path określa ścieżkę do poszukiwanej przez Nas wartości. Struktura zmiennej path jest taka sama jak w języki XPath. Innymi odpowiednikami tej funkcji są getnodeset i xpathsapply,

Allegro.pl Case study Moim celem jest sprawdzenie ile kosztują strony z fanami na allegro.pl czyli ile kosztuje jeden fan? Rozwiązanie l i b r a r y (XML) u r l< h t t p : // a l l e g r o. p l / l i s t i n g. php/ s e a r c h? c a t e g o r y =15821& s t r i n g=f a n i+f a c e b o o k&p=1 doc< htmlparse ( url, encoding= utf 8 ) tabl< readhtmltable ( doc, which=5) t a b l< t a b l [, 1] Wyniki Krótka statystyka z rana: 67 ofert sprzedaży fanpagów na allegro (tzn. farm fanów), gdzie średnia cena wynosiła 277.70 zł, mediana 79.99 zł, min 1.00 zł a max 5000.00zł. Ta najdroższa dotyczyła sprzedaży pakietu 1 mln fanów, czyli jeden fan kosztował 0,005 zł.

Last.fm Case Study Moim celem było sprawdzenie jak bardzo zwiększyła się popularność Whitney Houston poprzez analizę komentarzy na jej profilu na portalu muzycznym last.fm. Portal ten oferuje ściąganie danych w formie XML dzięki API (ang.application Programming Interface), można oczywiście ściągać dane przez stronę ale nie mamy takich szczegółowych danych. Dzięki temu mamy łatwość znalezienia interesującej nas pozycji. Wszystkie dostępne API możemy znaleźć pod adresem: http://www.lastfm.pl/api. Należy zapisać się na tej stronie aby dostać klucz do ściągania danych. Dane mogę ściągnać dzięki http://www.lastfm.pl/api/show/artist.getshouts Przykład danych <shouts a r t i s t= Whitney Houston page= 1 perpage= 50 totalpages= 127 t o t a l= 6316 > <s h o u t> <body>blah</ body> <a u t h o r>j o a n o f a r c t a n</ a u t h o r> <date>fri, 12 Dec 2008 13 : 20: 41</ date> </ s h o u t>... </ s h o u t s>

Last.fm Kod do ściągnięcia danych getshouts< function ( x ){ r e q u i r e (XML) doc< xmlparse ( x, encoding= utf 8 ) shout< xpathapply ( doc, // s h o u t // body, xmlvalue ) who< xpathapply ( doc, // s h o u t // a u t h o r, xmlvalue ) when< xpathapply ( doc, // s h o u t // d a t e, xmlvalue ) a< c b i n d ( who, when, s h o u t ) a } u r l < h t t p : //ws. a u d i o s c r o b b l e r. com / 2. 0 /? method=a r t i s t. g e t s h o u t s& a r t i s t=whitney+houston& a p i k e y=b25b959554ed76058ac220b7b2e0a026 Shouts1< g e t S h o u t s ( u r l )

Poznan.gumtree.pl Case study Moim celem jest pobranie danych dotyczących mieszkań (sprzedaż mieszkań) Strona internetowa

Poznan.gumtree.pl Poznan.gumtree.pl part 1 N< 109 gumlinks< paste ( h t t p : // poznan. gumtree. pl / f Nieruchomosci dom mieszkanie dzialke sprzedam W0QQCatIdZ9073QQPageZ,1 :N, QQSortZ2, sep= ) gumtree< function ( x ){ r e q u i r e (XML) doc< htmlparse ( x, encoding= UTF 8 ) l i n k s < u n l i s t ( xpathapply ( doc, // td [ @ c l a s s= hgk ] / / a, xmlgetattr, h r e f ) ) f o r ( i i n 1 : l e n g t h ( l i n k s ) ){ cat ( ================== nowe mieszkanie==================, \n ) c a t ( L i n k :, l i n k s [ i ], \n ) doc2< h t m l P a r s e ( l i n k s [ i ], e n c o d i n g= UTF 8, ) O f f e r I D< xpathapply ( doc2, // i n p u t [ @name= AdId ], xmlgetattr, v a l u e ) [ [ 1 ] ] [ 1 ] c a t ( O f f e r I D :, O f f erid, \n ) i n f o < xpathapply ( doc2, // span [ @itemprop= t i t l e ], xmlvalue ) [ [ 4 ] ] [ 1 ] c a t ( Type:, i n f o, \n ) tab< readhtmltable ( doc2 ) $ a t t r i b u t e T a b l e tab< r a p p l y ( tab, as. c h a r a c t e r, c l a s s e s= f a c t o r, how= r e p l a c e ) tab< c b i n d ( tab $V1, tab $V2) f o r ( i i n 1 :nrow ( tab ) ){ c a t ( tab [ i, 1 ], :, tab [ i, 2 ], \n ) }

Poznan.gumtree.pl Poznan.gumtree.pl part 2 o p i s< xpathapply ( doc2, // span [ @id= p r e v i e w l o c a l d e s c ], xmlvalue ) [ [ 1 ] ] [ 1 ] o p i s< gsub ( \n,, o p i s ) o p i s< gsub ( \ t,, o p i s ) c a t ( O p i s :, o p i s, \n ) l i n k < p a s t e ( h t t p : // poznan. gumtree. p l, u n l i s t ( xpathapply ( doc2, // t a b l e [ @id= a t t r i b u t e T a b l e ] / / td // a, xmlgetattr, h r e f ) ), sep= ) map< htmlparse ( link, encoding= UTF 8 ) a< as. c h a r a c t e r ( u n l i s t ( xpathapply (map, // d i v [ @id= gmap ] / / img, xmlgetattr, s r c ) ) ) i f ( l e n g t h ( a )!=0) { a1< s t r s p l i t ( a, = ) [ [ 1 ] ] [ 2 ] a2< s t r s p l i t ( a1, %2C ) Lat< as. numeric ( a2 [ [ 1 ] ] [ 1 ] ) Lng< as. numeric ( s t r s p l i t ( a2 [ [ 1 ] ] [ 2 ], &zoom ) [ [ 1 ] ] [ 1 ] ) c a t ( L a t :, Lat, \n ) c a t ( Lng:, Lng, \n ) } } } s i n k ( gumtree. t x t ) f o r ( j i n 1 :N ) gumtree ( g u m l i n k s [ j ] ) s i n k ( )

Podsumowanie Bardzo fajny pakiet, Problem z JavaScript i AJAX, Dla każdej strony oddzielny kod, Problem z https i formularzami Najlepiej używać pakiet RCurl i XML.

Przydatne Linki Pakiet RCurl http://www.omegahat.org/rcurl/rcurljss.pdf Strona z pakietami Duncana http://www.omegahat.org Forum Stackoverflow http://stackoverflow.com/questions/tagged/r+web-scraping Przykład ściągania http://christophergandrud.blogspot.com/2012/02/how-to-extract-text-from-multiple.html Pakiet do ściągania danych z Twiterra http://cran.r-project.org/web/packages/twitter/vignettes/twitter.pdf Poradnik do XML http://www.w3schools.com/xml/default.asp Poradnik do XPath http://www.w3schools.com/xpath/default.asp

Dziękuję za uwagę

Kontakt Dane kontaktowe: Maciej Beręsewicz maciej.beresewicz@ue.poznan.pl maciej.beresewicz@gmail.com 663062687