Seite 1 von 1

Url des erstens Youtube video herausfinden.

Verfasst: Dienstag 7. Juli 2020, 10:01
von samed06
Hi
Also ich arbeite grade an einem projekt und das problem ist .
ich brauche ein Code der mir als beispiel https://www.youtube.com/results?search_query=rick+roll die url des ersten videos rausspuckt.
teil des codes:

Code: Alles auswählen

input = "Rick roll"
input = [item for item in input.split('\n')]
join = ' '.join(result)



almost = join.replace(" ", "+")

url = "https://www.youtube.com/results?search_query=" + almost

print(url)
####################################







#####################################
ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download([end_result])
(#### = fehlender code)
ich bedanke mich schonmal im voraus.

Re: Url des erstens Youtube video herausfinden.

Verfasst: Dienstag 7. Juli 2020, 10:14
von Sirius3
@samed06: Query-Parameter codiert man nicht mit replace, sondern nutzt die passende Funktion (urllib.parse.urlencode).
Zum Lesen gibt es urllib.request oder requests. Zum Parsen von HTML gibt es BeautifulSoup.

Re: Url des erstens Youtube video herausfinden.

Verfasst: Dienstag 7. Juli 2020, 11:17
von xXSkyWalkerXx1
Du solltest Mal die YouTube Seite aus deiner URL aus analysieren.
Irgendwann kommst du zu einem a-HTML-Tag:

Code: Alles auswählen

<a id="video-title" class="yt-simple-endpoint style-scope ytd-video-renderer" title="Rick Astley - Never Gonna Give You Up (Video)" href="/watch?v=dQw4w9WgXcQ" aria-label="Rick Astley - Never Gonna Give You Up (Video) von Official Rick Astley vor 10 Jahren 3 Minuten, 33 Sekunden 716.730.788 Aufrufe">
                <yt-formatted-string class="style-scope ytd-video-renderer" aria-label="Rick Astley - Never Gonna Give You Up (Video) von Official Rick Astley vor 10 Jahren 3 Minuten, 33 Sekunden 716.730.788 Aufrufe">Rick Astley - Never Gonna Give You Up (Video)</yt-formatted-string>
</a>
D.h., solltest du es mittels WebScrapping machen wollen, dass du mit Beautiful-Soup nach a-Tags mit der ID (siehe oben) suchen musst und dann bloß den 'href' extrahieren musst.
Und um das 1. Video zu kriegen, solltest du alle Tags mit einer for-Schleife abrufen lassen und einen Zähler einbauen.
(hier der übergeordnete Tag vom a-Tag , siehe oben)

Code: Alles auswählen

<div id="contents" class="style-scope ytd-item-section-renderer"><ytd-video-renderer class="style-scope ytd-item-section-renderer" lockup="" prominent-thumb-style="DEFAULT"><!--css-build:shady-->

Re: Url des erstens Youtube video herausfinden.

Verfasst: Mittwoch 8. Juli 2020, 07:56
von Jankie
Ich würde dir da eher zu Selenium raten, da die Seite einiges durch JS nachlädt. (Oder gibt es da eine andere Möglichkeit mit requests?)