Abrufen von Daten von einer Webseite mit mehreren TabellenseitenHallo Leute,
Ich ziehe Daten von einer Webseite, stoße aber auf ein Problem, ich kann die Webadresse aufgrund der IP nicht angeben.
Wenn ich die Seite ziehe, öffnet es eine Tabelle, aber nicht alle Zeilen - es öffnet die ersten 1000 Zeilen:

open("URL", HTML Table(2));Das Problem ist, dass es 3 Seiten hat, wenn das Sinn macht, siehe Screenshot

Meine Frage ist, wie ziehe ich die nächsten zwei Seiten?
Danke
SkripterstellungBetreff: Daten von einer Webseite mit mehreren Tabellenseiten abrufenWenn Sie die nächste Seite der Website in einem Browser auswählen, ändert sich die URL so, dass Sie sie entziffern können? In diesem Fall könnten Sie Ihr offenes Skript mehrmals ausführen, einmal für jede Seite/URL, und dann den Befehl Concatenate() verwenden, um alle Tabellen zusammenzuführen.
Betreff: Daten von einer Webseite mit mehreren Tabellenseiten abrufenIch habe dies versucht, die URL bleibt gleich, ich habe Seite = 2 versucht. Da es sich um ein internes System handelt, kann ich es leider nicht teilen
Betreff: Daten von einer Webseite mit mehreren Tabellenseiten abrufenEs gibt mehrere Ansätze, zusätzlich zu den @Jed_Campbell Idee (was am einfachsten ist, wenn die Adressleiste des Browsers eine Adressänderung auf vorhersehbare Weise anzeigt.)
0. Wenn die Website eine API bereitstellt, möglicherweise für ausruhen Dienstleistungen, das wird die beste Wahl sein. Vielleicht können Sie den Eigentümer des Systems nach einer API fragen.
oder, 1. Verwenden Sie F12 in Ihrem Browser (ich verwende FireFox, aber Chrome und Edge sind ähnlich). Wählen Sie den Netzwerk-Tab, der Ihnen zeigt, was über das Netzwerk gesendet wird. Klicken Sie auf der Website auf die Schaltfläche „Nächste Seite“ und beginnen Sie mit dem Studium der gesendeten Anfragen. Es ist schwer zu sagen, wonach Sie suchen, aber oft handelt es sich um JSON-Daten. Sie werden sehen, ob es ein POST oder GET war und welche Art von Headern verwendet wurden. Wenn es eine Wahl gibt, ist JSON wahrscheinlich besser als HTML.
oder, 2. Dies wird erheblich schwieriger sein, funktioniert aber oft, wenn andere Möglichkeiten fehlschlagen. Browser-Scripting mit Python Selenium
Das Scraping von Daten von Webseiten ist im besten Fall schwierig. Im schlimmsten Fall versuchen einige Websites aktiv, die Arbeit automatisierter Bots zu verhindern, im Allgemeinen durch Erkennung kein richtiger Browser oder kein echter Mensch . Websites, die die Adressleiste nicht aktualisieren, verwenden eine Art Ajax-ähnliches Protokoll mit JavaScript. das wird im F12-Fenster angezeigt, vielleicht mit einer einfach zu decodierenden URL und Headern. Manchmal mit einem Cookie oder verschlüsselten Parametern oder einem Passwort.
JMP hat eine spezielle Behandlung für HTML-Tabellen, aber das funktioniert möglicherweise nicht, es sei denn, es gibt eine einfache URL, die jede Seite als HTML mit einer Tabelle zurückgibt. JMP verfügt auch über JSON-, XML- und CSV-Importassistenten, die hilfreich sein können.
Betreff: Daten von einer Webseite mit mehreren Tabellenseiten abrufenWenn JavaScript auf der Webseite vorhanden ist, um die Anforderung der Zeitstempelalgorithmus-Konvertierung zu verbessern, wie kann JSL verwendet werden, um diesen JavaScript-Algorithmus zu implementieren, damit JSL die Webdaten reibungslos herunterladen kann?
Danke Craige!

Betreff: Daten von einer Webseite mit mehreren Tabellenseiten abrufenEine geeignete API ist immer die beste Wahl. Eine API sendet die Daten zurück, typischerweise als JSON, ohne andere störende Artefakte wie Popups,
usw. APIs sind es manchmal
ausruhen Dienstleistungen.
Einige Websites möchten nicht gescraped werden, da sie Geld verlieren, wenn Anzeigen nicht angesehen werden, Bandbreite Geld kostet und sie möglicherweise für den Zugriff auf die von ihnen weitergegebenen Daten bezahlen müssen. Wenn die Website sicherstellen möchte, dass ein Mensch einen echten Browser verwendet, um auf die Daten zuzugreifen, kann die Verwendung von Selenium gegen ihre Nutzungsbedingungen für Robot Scraping verstoßen. Die Suche nach einem Browser, der JavaScript ausführen kann, ist eine der Prüfungen, die eine Website durchführen kann. Ein von Selenium gesteuerter Browser führt JavaScript wie ein normaler Browser aus.
Wenn Sie ohne Selenium Open() oder LoadTextFile() verwenden, um eine URL zu lesen, gibt es keinen Browser. Das JavaScript ist nur ein Teil des zurückgegebenen Textes, der nicht ausgeführt wird (genauso wie der HTML-Code Teil des zurückgegebenen Textes ist, der nicht für die Anzeige gerendert wird.)
https://www.google.com/search?q=use+selenium+to+run+javascript - eine Reihe von Ideen, falls Sie tatsächlich etwas Javascript ausführen müssen: JSL->Python->Selen->JavaScript.
Betreff: Daten von einer Webseite mit mehreren Tabellenseiten abrufenDanke Craige!
Betreff: Daten von einer Webseite mit mehreren Tabellenseiten abrufenIch habe es nicht selbst gemacht, aber ich glaube, Sie können JMP verwenden, um Selenium auszuführen, um die Seite mit dem JavaScript-Code zu laden, und dann Selenium verwenden, um JavaScript-Funktionen von JMP aufzurufen. Oder Sie können einfach Selenium verwenden, um die Seite zu bedienen. Ich würde nicht versuchen, eine JavaScript-Funktion in JSL umzuwandeln. Das JSL+Python+Selenium in dem Blogbeitrag macht ziemlich genau das, was Sie beschreiben ... ein Roboter, der einen echten Browser bedient, um eine Webseite zu schaben und sogar ein Passwort bereitzustellen.Betreff: Daten von einer Webseite mit mehreren Tabellenseiten abrufenOk, ich verstehe, ich habe Ihren Blogbeitrag sorgfältig studiert.
Danke Craige!