HTML-Quelltext unterschiedlich in Browser im Gegensatz zu requests
Verfasst: Freitag 17. August 2018, 21:52
Hallo liebe Leute im Forum,
ich habe gerade echtes kopfkratzen. Ich wollte den Code vom Modul pytube verstehen. Klappte auch soweit. Habe eine eigene Variante in BeautifulSoup programmieren können. Nur eine Sache will mir nicht in den Kopf:
> Der Quellcode, der Website, welchen ich via requests herunterlade ist der selbe wie im Browser (Firefox/Chrome).
> Nutze ich doc = BeautifulSoup("Youtubelink","html.parser") dann kommt ganz anderer Quelltext bei raus. Ist richtig soweit, denn die Webseite wurde ja nun geparst, also "alle Skripte" ausgeführt und das Endresultat wird präsentiert.
Nun habe ich aber folgenden Error im Kopf:
Wieso gibt mir der Browser, welcher die Webseite ebenso parst, keinen geparsten Quelltext aus, unter "Seitenquelltext anzeigen"?
Wenn ich mit "Untersuchen" den Quelltext durchgehe, habe ich wieder einen anderen Quelltext. Ich merke dies daran, dass ich folgende CSS Klasse (.pl-video-title-link) via Python finde, soweit geparst, in beiden Browsern jedoch nie zu Gesicht bekomme.
Wieso ist das so!?
Mein Mini-Code-Schnipsel:
Dies habe ich ausschließlich zum Verstehen nachprogrammiert und erhalte, selbst wenn ich den Code-Schnipsel von pytube ausführe, das selbe Ergebnis - was an sich Top ist. Nur scheinen die Quelltexte unterschiedliche zu sein, von beiden Parsern (BeautifulSoup & pytube(urllib)) zum normalen Browser.
Wieso ist das so?
Wie kann ich es erreichen, den Quelltext aus pytube, BeautifulSoup auch im Browser zu sehen? <-- Hauptfrage für mich.
Danke euch.
P.S.: Kann es vielleicht auch sein, dass im Parser bei Python die "on-click" JavaSkripte direkt ausgeführt werden und er quasi klickt und daher ein anderer Quelltext herauskommt!? *kopfkratz*
ich habe gerade echtes kopfkratzen. Ich wollte den Code vom Modul pytube verstehen. Klappte auch soweit. Habe eine eigene Variante in BeautifulSoup programmieren können. Nur eine Sache will mir nicht in den Kopf:
> Der Quellcode, der Website, welchen ich via requests herunterlade ist der selbe wie im Browser (Firefox/Chrome).
> Nutze ich doc = BeautifulSoup("Youtubelink","html.parser") dann kommt ganz anderer Quelltext bei raus. Ist richtig soweit, denn die Webseite wurde ja nun geparst, also "alle Skripte" ausgeführt und das Endresultat wird präsentiert.
Nun habe ich aber folgenden Error im Kopf:
Wieso gibt mir der Browser, welcher die Webseite ebenso parst, keinen geparsten Quelltext aus, unter "Seitenquelltext anzeigen"?
Wenn ich mit "Untersuchen" den Quelltext durchgehe, habe ich wieder einen anderen Quelltext. Ich merke dies daran, dass ich folgende CSS Klasse (.pl-video-title-link) via Python finde, soweit geparst, in beiden Browsern jedoch nie zu Gesicht bekomme.
Wieso ist das so!?
Mein Mini-Code-Schnipsel:
Code: Alles auswählen
from bs4 import BeautifulSoup as beb
import requests
r = requests.Session()
site = r.get("https://www.youtube.com/playlist?list=UULGY6_j7kZfA1dmmjR1J_7w", allow_redirects=False)
doc = beb(site.text, "html.parser")
print(doc)
Wieso ist das so?
Wie kann ich es erreichen, den Quelltext aus pytube, BeautifulSoup auch im Browser zu sehen? <-- Hauptfrage für mich.
Danke euch.
P.S.: Kann es vielleicht auch sein, dass im Parser bei Python die "on-click" JavaSkripte direkt ausgeführt werden und er quasi klickt und daher ein anderer Quelltext herauskommt!? *kopfkratz*