Hjælp: Scrape data fra hjemmeside (Excel)

#1| 0

Hej PN,


Jeg er i gang med et lille projekt, hvor jeg vil bygge min egen lille algoritme til sportsbetting (hobbyprojekt).


Det er heldigvis forholdsvis nemt at scrape data fra en hjemmeside via Excel. Der er dog opstået et problem, da linket øverst i browseren ikke ændres, når jeg navigerer i en tabel. Hvis der eksempelvis vælges goals fremfor shots i tabellen (nedenstående link) ændres linket ikke øverst i browseren.


https://www.whoscored.com/Regions/206/Tournaments/4/Seasons/6960/Stages/15375/TeamStatistics/Spain-La-Liga-2017-2018


Hvordan scraper jeg automatisk tabellen i ovenstående link, hvis jeg er interesseret i goals fremfor shots?

19-01-2018 21:43 #2| 0
TightGirl skrev:Hej PN,

Jeg er i gang med et lille projekt, hvor jeg vil bygge min egen lille algoritme til sportsbetting (hobbyprojekt).

Det er heldigvis forholdsvis nemt at scrape data fra en hjemmeside via Excel. Der er dog opstået et problem, da linket øverst i browseren ikke ændres, når jeg navigerer i en tabel. Hvis der eksempelvis vælges goals fremfor shots i tabellen (nedenstående link) ændres linket ikke øverst i browseren.

https://www.whoscored.com/Regions/206/Tournaments/4/Seasons/6960/Stages/15375/TeamStatistics/Spain-La-Liga-2017-2018

Hvordan scraper jeg automatisk tabellen i ovenstående link, hvis jeg er interesseret i goals fremfor shots?

Jeg har kigget på det samme (i hvert fald så langt at det er whoscored også) og overvejede at spørge herinde, da Pokernet som bekendt ved alt.


Mine umiddelbare - hvilket vil sige ikke vanvittigt dybdegående - forståelse er, at whoscored ikke ønsker at blive scrapet. Mit ukvalificerede gæt vil være, at deres licens til så vidtgående Opta-stats vil være væsentligt dyrere, hvis ikke de, som nu, forhindrede alle og enhver i at benytte dataen ved at scrape den. Den kan givet lade sig gøre, men mit indtryk ud fra noget googling er, at de i opbygningen af deres hjemmeside bruger noget software. der er specifikt designet til at modarbejde scraping og deres robot.txt er vist skrappere end de fleste. Så det kræver formentlig en del mere end en random scrape, inklusiv brug af mange IP's for at undgå at blive blokeret.

19-01-2018 22:35 #3| 0

@YesSirreeBob


Mange tak for svar - desværre ikke det svar jeg havde håbet på.

19-01-2018 22:56 #4| 1

det frivilligt om en crawler følger robots.txt


Har ikke set siden men lyder som om siden bruger AJAX (opdaterer indhold i browser direkte med indhold fra server)



Redigeret af wannooks d. 19-01-2018 22:57
19-01-2018 23:58 #5| 0

Jeg har ikke kigget på strukturen på siden, men prøv om ikke datatoolbar.com kan crawle det. Super simpel point and click crawler.

20-01-2018 01:42 #6| 0

Lav din kode så den klikker på linket. Adresseniveauet er i så fald ligegyldigt.

20-01-2018 13:46 #7| 0

Som wannooks siger, så bruger siden AJAX. Hvis du bruger chrome så gå ind på siden og tryk F12, og vælg Network, og så prøv at trykke på Goals, så burde du kunne se, at siden laver en request til deres API.


Afhængigt af, hvordan de har lavet deres API burde du ret nemt kunne få den data ud, som du har lyst til.

20-01-2018 13:54 #8| 1

Hej
Kan ikke hjælpe med stats for de europæiske ligaer, men hvis man skulle have lyst til at lege med Excel og den danske Superliga kan jeg anbefale at tage et kig i denne mappe med filer og urls...

https://drive.google.com/open?id=13LXX6a37WMs5wOdUjNipNeC73mY2dLI5


Det drejer sig hvis kun om dette efterår i SLDK (19), men hvis man interesser sig for det kan man sikkert ændre SeasonID til forrige sæson....

Der er en 3-8 ekstra lag i forhold til de stats som de vælger at offentliggøre i ligaens performance-center. Alle links og filer er i Json, ekstremt Excel venligt.


Inched

Redigeret af Inched Limns d. 20-01-2018 17:18
20-01-2018 17:17 #9| 0
TightGirl skrev:Hej PN,

Jeg er i gang med et lille projekt, hvor jeg vil bygge min egen lille algoritme til sportsbetting (hobbyprojekt).

Det er heldigvis forholdsvis nemt at scrape data fra en hjemmeside via Excel. Der er dog opstået et problem, da linket øverst i browseren ikke ændres, når jeg navigerer i en tabel. Hvis der eksempelvis vælges goals fremfor shots i tabellen (nedenstående link) ændres linket ikke øverst i browseren.

https://www.whoscored.com/Regions/206/Tournaments/4/Seasons/6960/Stages/15375/TeamStatistics/Spain-La-Liga-2017-2018

Hvordan scraper jeg automatisk tabellen i ovenstående link, hvis jeg er interesseret i goals fremfor shots?

Hvis du "bare" vil have for 5 kr blandet stats på holdene i den spanske liga kan jeg anbefale flg. link btw..

https: //ss2.tjekscores.dk/teams/8634/members?sport=fodbold&seo=Barcelona&tournamentId=87&seasonId=11742

{"id":30981,"name":"Lionel Messi","position":"forward","countryId":48,"hasInjury":0,"hasSuspension":0,"hasTransferRumor":0,"number":10,"stats":{"goals":17,"yellowCards":2,"totalCards":1,"firstYellowCards":1,"assists":16,"matchesTotal":19,"minutesTotal":1710,"matchesLineup":19},"goals":17,"appearances":19},

Man kan så skifte teams/xxxxxxx ud med valgfrit ID-nummer fra den spanske liga. De forskellige IDs ser du her:

https: //ss2.tjekscores.dk/tournaments/87/standings?&seasonId=11742


Jeg kan btw anbefale at benytte Firefox til at lege med Json filer, da browseren automatisk opstiller indholdet pænt, og gør det nemt at gemme indholdet.

Om du kan finde andet brugbart ved jeg ikke, men måske var BTs livecenter et alternativ til Whoscored....


VH

Inched


Du kan btw også få lidt mere historik på de enkelte hold og spillere ved hjælp af at ændre SeasonID.. ID til de forskellige sæsoner kan se her:
Fil med oversigt over SeasonID fra de seneste 16 sæsoner fandt jeg her ved et tilfælde:

https://drive.google.com/file/d/1H1dmyd6GnhszjjPB43z5I9xkkgyj91SR/view?usp=sharing


God arbejdslyst






20-01-2018 22:13 #10| 0
thxForUmoney skrev:Som wannooks siger, så bruger siden AJAX. Hvis du bruger chrome så gå ind på siden og tryk F12, og vælg Network, og så prøv at trykke på Goals, så burde du kunne se, at siden laver en request til deres API.

Afhængigt af, hvordan de har lavet deres API burde du ret nemt kunne få den data ud, som du har lyst til.

Når den ubekendte afhængige, omkring hvorvidt det er "ret nemt", er - efter alt hvad jeg kan finde frem til - at deres API specifikt er sat op til at sørge for, at det netop ikke er nemt, er det så stadig din påstand? Forsøger ikke at være en smartass :) Jeg forsøger snarere at få et overblik over, hvilket niveau det kræver, og hvilken arbejdsmængde det kræver at nå dertil.


Nu er det nogle år siden, at jeg undersøgte det i dybden, men en hurtig Google nu giver meget de samme type resultater. XG-entusiaster siger, at whoscored ikke kan scrapes, mens coding forums siger enten det samme eller siger, at det kan lade sig gøre, hvis man....og så en lang liste ting, der er langt over mit nuværende niveau. Jeg kan en smule kode, og source code på siden ser rimelig straight-forward ud, så det er ikke fordi de forsøger at begrave information om, hvor delelementer af data er, hvis man ønsker at scrape det; sådan umiddelbart i al fald. Min erindring er dog fra den tidligere undersøgelse, at de har lagt ekstra lag af sikkerhed ind med masser af honeypots og blacklister for et godt ord. Den hurtige google nu siger mig, at det ekstra sikkerhed, de benytter, bl.a. er Incapsula, og en del af snakken på coding forums går på at omgå den. Men jeg mener, at der (også) var tale om noget andet, da jeg undersøgte tidligere.


Hvis du fastholder "ret nemt", eller noget der ligner, ud fra hvilken tilgangsvinkel, mener du så det? Med coding er det temmelig afhængigt af nuværende niveau imho. Er din tilgangsvinkel baseret på: en der aldrig har set en linje kode før; en der har leget lidt med coding/scraping; eller en der har arbejdet meget med det?

20-01-2018 22:45 #11| 0

Sælger selv et scraper og flere crawler værktøjer - kan godt nappe indhold AJAX indlæst på onload (dække vist ikke det OP vist har brug for). Er næsten fristet til tage et kig. Men er der nogle som kunne bruge den slags? Kan ikke love jeg ligefem kan gå igang med større kodningsprojekter lige pt men har selv lidt interesse i scrape sports data - har nogle ideer til hvordan man automatisk generere fair odds estimater på en kamp ud fra data (inkl. fx DMI vejr) ...


Har bare puslet lidt med i hovedet - jeg ved fakisk ikke særligt meget om sport ellers. Sådanne algorimer vil jo ikke inkludere spiller-news... Undtagen hvis man rent faktisk laver noget FIFA agtigt noge som *også* tracker de enkelte spillers performance og så sætter endeligt odds når spillere udtaget. Men det bliver et stort nørd projekt...


Anyhow - PM gerne. Og så evt. tage den på Skype eller email.

Redigeret af wannooks d. 20-01-2018 22:48
20-01-2018 23:16 #12| 0
YesSirreeBob skrev:
Når den ubekendte afhængige, omkring hvorvidt det er "ret nemt", er - efter alt hvad jeg kan finde frem til - at deres API specifikt er sat op til at sørge for, at det netop ikke er nemt, er det så stadig din påstand? Forsøger ikke at være en smartass :) Jeg forsøger snarere at få et overblik over, hvilket niveau det kræver, og hvilken arbejdsmængde det kræver at nå dertil.

Nu er det nogle år siden, at jeg undersøgte det i dybden, men en hurtig Google nu giver meget de samme type resultater. XG-entusiaster siger, at whoscored ikke kan scrapes, mens coding forums siger enten det samme eller siger, at det kan lade sig gøre, hvis man....og så en lang liste ting, der er langt over mit nuværende niveau. Jeg kan en smule kode, og source code på siden ser rimelig straight-forward ud, så det er ikke fordi de forsøger at begrave information om, hvor delelementer af data er, hvis man ønsker at scrape det; sådan umiddelbart i al fald. Min erindring er dog fra den tidligere undersøgelse, at de har lagt ekstra lag af sikkerhed ind med masser af honeypots og blacklister for et godt ord. Den hurtige google nu siger mig, at det ekstra sikkerhed, de benytter, bl.a. er Incapsula, og en del af snakken på coding forums går på at omgå den. Men jeg mener, at der (også) var tale om noget andet, da jeg undersøgte tidligere.

Hvis du fastholder "ret nemt", eller noget der ligner, ud fra hvilken tilgangsvinkel, mener du så det? Med coding er det temmelig afhængigt af nuværende niveau imho. Er din tilgangsvinkel baseret på: en der aldrig har set en linje kode før; en der har leget lidt med coding/scraping; eller en der har arbejdet meget med det?

Vil da gerne indrømme, at jeg ikke har siddet og søgt på google i flere timer omkring, hvordan lige præcis den her hjemmeside forsøger at undgå scraping. Jeg gik ind på linket OP havde smidt, trykkede rundt i deres tabeller, så at der blev lavet et kald til en API, konstaterede at den så ud til at være rimelig lige til, og så smed jeg min kommentar herinde.


"Ret nemt" skulle forstås på den måde, at hvis OP allerede kan finde ud af at scrape hjemmeside og lave algoritmer, så burde det ikke være særligt svært at finde et program (ved ikke om det er indbygget i excel) som han kan lave API kald med. At deres API så er beskyttet af noget andet gør det selvfølgelig besværligt, men det virker til at du har lavet en masse research omkring siden, så det kunne være du kunne linke til noget af det du er kommet frem til, så vi kan undersøge det nærmere :-)

21-01-2018 20:39 #13| 2

Mange tak for bidrag alle sammen - det er værdsat!


Jeg frygter lidt, at mine tekniske færdigheder sætter lidt sine begrænsninger i dette tilfælde! Jeg vil dog prøve at læse nærmere op på det med udgangspunkt I jeres inputs :)

21-01-2018 22:03 #14| 1

Hvis man har lyst til at spare - så er vi 2 indtil videre som tilføjet hinanden på Skype. PM mig


Det kan være løslig sparring eller decideret samarbejde - vi ser hvor det fører hen

21-01-2018 23:24 #15| 0
wannooks skrev:Hvis man har lyst til at spare - så er vi 2 indtil videre som tilføjet hinanden på Skype. PM mig

Det kan være løslig sparring eller decideret samarbejde - vi ser hvor det fører hen

Hvis I skulle få brug for lidt målscorer-stat fra Superligaen og tilfældigvis er bedre end mig til at udfolde et skævt træ i Excel således at skaber 10+ millioner rækker, så sig til. F.eks. filer som denne jeg går og bakser med for sjov.

https://drive.google.com/file/d/19Drcd25jIQ3782FzDwqZy0rNsJt4kf5r/view?usp=sharing



Den indeholder alle FCKs målstats for denne sæson. Lignende findes for de enkelte klubber og de enkelte spillere i SUperligaen. Strukturen går igen på data fra andre ligaer ser det ud til. Når jeg folder den ud i excel bliver resultatet lidt jammerligt, med mindre man meget selektivt begrænser sig til noget lignende det på billedet.

Det er lidt for sløvt, når man er en datamængde liderlig ungkarl som undertegnet. Meld gerne tilbage hvis nogle skulle have et fif eller 2.


Inched -
Når overspringshandlinger på facebook udskiftes med overspringshandlinger i R og node.js






← Gå til forumoversigtenGå til toppen ↑
Skriv et svar