Hallo zusammen,
Ich versuche gerade in Python einzusteigen, dabei habe ich ein Problem bei meinem ersten Projekt.
Ich möchte eine Webseite folgendermaßen auslesen:
________________________________
import urllib.request
html = urllib.request.urlopen("http://gwise.itwelzel.biz/Books/Openboo ... 20_002.htm")
print(html.read())
________________________________
Wenn ich kleine Websites auslese funktioniert das auch, wenn ich allerdings umfangreichere Websites (wie im Beispiel) auslese wird nur ein Teil der Webseite in der Variablen html gespeichert.
Meine Vermutung ist das entweder die Variable die Menge an Daten nicht speichern kann oder dass die Funktion: urllib.request.urlopen nicht alles zurückgibt.
Ich hoffe das ihr mir dabei weiterhelfen könnt, Vielen Dank
athlon
Webseite in Variable einlesen
Wenn dein Browser respektive allgemein dein Computer die Menge an Daten speichern kann, dann kann das auch Python. Das ist also nicht der Grund.
Sondern das heutzutage eine Vielzahl von Webseiten hochdynamisch sind. Nach dem initialen lesen werden per Javascript grosse Teile nachgeladen. Facebook zB ist eine fast komplette single-page-Anwendung.
Wenn du so eine Seite abgrasen willst, musst du entweder rausfinden (per Browser Debugger) welche Aufrufe die Seite an den Server macht, und die auch machen.
Oder du scrapst *durch* einen Browser, mit so etwas wie Selenium zB.
Sondern das heutzutage eine Vielzahl von Webseiten hochdynamisch sind. Nach dem initialen lesen werden per Javascript grosse Teile nachgeladen. Facebook zB ist eine fast komplette single-page-Anwendung.
Wenn du so eine Seite abgrasen willst, musst du entweder rausfinden (per Browser Debugger) welche Aufrufe die Seite an den Server macht, und die auch machen.
Oder du scrapst *durch* einen Browser, mit so etwas wie Selenium zB.
Vielen Dank für die schnelle Antwort,
ich habe Selenium getestet, allerdings habe ich dabei das gleich Problem wie zuvor, die Webseite wird nur zum Teil eingelesen.
Hier ist mein Quellcode:
from selenium import webdriver
browser = webdriver.Chrome("c:\Python\chromedriver\chromedriver.exe")
browser.get("https://www.rheinwerk-verlag.de/")
print (browser.page_source)
Woran könnte es liegen das bei der Ausgabe der Webseite mit print nur ein Teil ausgegeben wird?
ich habe Selenium getestet, allerdings habe ich dabei das gleich Problem wie zuvor, die Webseite wird nur zum Teil eingelesen.
Hier ist mein Quellcode:
from selenium import webdriver
browser = webdriver.Chrome("c:\Python\chromedriver\chromedriver.exe")
browser.get("https://www.rheinwerk-verlag.de/")
print (browser.page_source)
Woran könnte es liegen das bei der Ausgabe der Webseite mit print nur ein Teil ausgegeben wird?
Es werden nur ca. die ersten 100 Zeilen html Code ausgegeben bzw. eingelesen. Der Quellcode Zeigt es:
from selenium import webdriver
browser = webdriver.Chrome("c:\Python\chromedriver\chromedriver.exe")
browser.get("https://www.rheinwerk-verlag.de/")
print (browser.page_source)
Mein Ziele ist es Webseiten zu Vergleichen und nach Neuerrungen zu durchsuchen.
from selenium import webdriver
browser = webdriver.Chrome("c:\Python\chromedriver\chromedriver.exe")
browser.get("https://www.rheinwerk-verlag.de/")
print (browser.page_source)
Mein Ziele ist es Webseiten zu Vergleichen und nach Neuerrungen zu durchsuchen.
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Ich auch. Auch schon `requests`, da brauche ich kein Selenium für bemühen:
Code: Alles auswählen
In [18]: r = requests.get('https://www.rheinwerk-verlag.de/')
In [19]: r.content.count(b'\n')
Out[19]: 3939
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Danke für eure Hilfe,
der Fehler scheint bei der Ausgabe des Strings zu liegen, mit print() es wird nicht der komplette string (im Terminal Fenster von VS code) ausgegeben.
Das einlesen der Webseite in eine Variable funktioniert.
Gruß
athlon
der Fehler scheint bei der Ausgabe des Strings zu liegen, mit print() es wird nicht der komplette string (im Terminal Fenster von VS code) ausgegeben.
Das einlesen der Webseite in eine Variable funktioniert.
Gruß
athlon