Thread Im cgi-Script curl/wget von externer Website
(19 answers)
Opened by MiLeREDE at 2022-04-09 15:51
Nun ja, ich würde WWW::Mechanize nehmen um Inhalte von Webseiten aus zu lesen.
Oder LWP und HTML::Parser, um die VdieoIDs zu finden. //EDIT: Oh, aber ich sehe gerade, die stecken dann im Javascript-Code der YT-Seite, welches HTML::Parser gar nicht auslesen kann. Folgende Idee: Quellcode der Seite mit LWP holen Nach VideoIds per Regex suchen und die nacheinader in ein Perl-Array stecken Dann kannst du die korrekte Reihenfolge der Videos bekommen Habe jetzt gerade keinen Code parat. Vielleicht später. Mein Ansatz daraus: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #!/usr/bin/perl use strict; use warnings; use 5.018; use utf8; use LWP::UserAgent; my $url = 'https://www.youtube.com/channel/UC5YPvina0jntpfIkiHNIi6w'; my $ua = LWP::UserAgent->new(); $ua->agent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'); my $res = $ua->get($url); my $content = $res->content; # Zu uniq von Array-Werten siehe https://perlmaven.com/unique-values-in-an-array-in-perl my @unique = do { my %seen; grep { !$seen{$_}++ } $content =~ m|"videoId":"([^"]+)"|g; # Ids in JSON "videoId":"Du8OyyaOgN4" }; Ich habs nur grob getestet aus Zeitgründen. Wie du ein Array durchlaufen musst, weißt du ja um das nächste zu finden, oder? ;-) Und der Link auf Video hat dann ja die URL https://www.youtube.com/watch?v=HIERID Ein bisschen musst du auch noch selbst tun, ich mag dir nicht den ganzen Scraper bauen, du darfst auch was lernen. Editiert von GwenDragon: Code hinzugefügt, Regex korrigiert Last edited: 2022-04-11 11:02:01 +0200 (CEST) |