Wie automatisiere ich das Herunterladen mehrerer PDFs von einer bestimmten Webseite?


1

Ich versuche, PDFs von herunterzuladen dieser Link . Beim Klicken PDF lesen öffnet es ein neues Fenster mit PDF darin. Wenn Sie auf die Schaltfläche zum Herunterladen klicken, wird ein Dialogfeld geöffnet und der Benutzer aufgefordert, den Speicherort für die Datei anzugeben.

Nach dem Öffnen der Webseite des betreffenden E-Books möchte ich folgende Schritte automatisieren:

  1. PDF lesen angeklickt wird. Das Fenster wird in einem neuen Fenster geöffnet.
  2. Symbol herunterladen angeklickt wird. Das Dialogfeld wird angezeigt und fordert Sie auf, den Dateinamen und den Speicherort anzugeben.
  3. Der voreingestellte Name ist Kauderwelsch. Also, der aussagekräftige Name gefällt Frontmaterie , Inhalt usw. ist dort eingefügt, was vor dem Downloadlink erwähnt und zuvor kopiert wurde.

Ich möchte die obigen Schritte für viele E-Books automatisieren. Wären die Links in Nicht-Javascript-Formular Wäre es einfach gewesen, mit einer Art Download-Manager herunterzuladen.

(PS: Die angegebene Webseite enthält möglicherweise nicht alle PDF lesen Links aktiviert, aber sie sind alle hinter dem Proxy an meinem Standort aktiv.)

Antworten:


1

Ich habe folgendes JavaScript für Sie geschrieben:

var ar = $('a.pdf-icon').each(function (a) 
{
  var ar = $(this).attr('onclick').split("'"); 
  var url = "http://ebooks.cambridge.org/open_pdf/" 
           + ar[3] 
           + "?pubCode=CUP&urlPrefix=cambridge&productCode=cbo";   
  alert("Press OK for next download");
  window.open(url);
});

Öffnen Sie dazu die Seite, die Sie in Ihrer Frage verlinkt haben, öffnen Sie die JavaScript-Konsole (STRG + UMSCHALT + I), fügen Sie den obigen Code in die Konsole ein und drücken Sie die Eingabetaste. Es werden dann alle verknüpften PDFs heruntergeladen.

Bitte beachten Sie:

  • Ich habe es mit Chrome und Firefox versucht, beide haben funktioniert.
  • Möglicherweise müssen Sie die Popup-Blocker-Funktion deaktivieren, da sie sonst nicht funktioniert
  • Möglicherweise müssen Sie alle PDF-Plug-Ins in Ihrem Browser deaktivieren, da sonst die PDF-Dateien möglicherweise im Plug-In angezeigt werden, anstatt heruntergeladen zu werden
  • Das Skript muss möglicherweise geändert werden, wenn sich der Quellcode der Seite bei der Anzeige über Ihren Proxy unterscheidet.

Es funktioniert gut. Könnten Sie bitte eine Möglichkeit nennen, zwischen zwei aufeinander folgenden Downloads eine gewisse Verzögerung einzufügen? Sie werden alle gleichzeitig heruntergeladen und der Browser ist überfordert. Auch gibt es einen Weg, durch den man hinzufügen kann sinnvoll Namen zu den Dateien, wie in Punkt erwähnt 3 . Entschuldigung, ich kenne mich mit Javascript sehr wenig aus, daher muss ich so kleine Fragen stellen. Wenn die Antwort nicht exakt ist, hilft auch ein externer Link / Tutorial.
Gaurav

Ich fügte dem Code eine Zeile hinzu, in der der Benutzer aufgefordert wird, auf OK zu klicken, um mit dem nächsten Download fortzufahren. Mir sind keine Möglichkeiten bekannt, die Dateinamen zu ändern. Ich denke, das ist nur auf der Serverseite möglich (Cambridge müsste das also tun).
Bob

Ich bedanke mich für Ihre Hilfe, obwohl ich nach einer Art VB-Skriptautomatisierung gesucht habe, um den Namen von Dateien zu ändern.
Gaurav

Das Ändern der Namen mit VB ist einfach, aber Sie müssten irgendwo eine Liste der Dateinamen bereitstellen ...
Bob

Jeder PDF lesen Geschrieben wird nach dem gewünschten Dateinamen, wie Frontmatter, Contents usw. Ist es möglich, diese Dateinamen aus dem Quellcode oder etwas anderem zu extrahieren und dann mit dem Umbenennen der Datei fortzufahren?
Gaurav
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.