Extrahieren eines Wertes aus einer Liste von URLs in einem passwortgeschützten Bereich

689
user111780

Ich habe eine Liste mit mehreren hundert URLs, die sich in einem passwortgeschützten Konto befinden und folgendes Format haben:

https://somesite.com/somescript.php?nameA https://somesite.com/somescript.php?nameB https://somesite.com/somescript.php?nameC ... 

Für jede dieser URLs möchte ich einen Zeichenfolgenwert von der entsprechenden Webseite extrahieren, wobei sich dieser Wert immer zwischen einer bestimmten Präfixzeichenfolge und einer Postfixzeichenfolge befindet und eine lokale CSV-Datei mit den aus jeder URL extrahierten Daten erstellt wird:

nameA,valueA nameB,valueB nameC,valueC ... 

Gibt es eine einfache Möglichkeit oder ein Skript, um dies in Mac OS X zu tun?

Ich habe bereits das iMacros-Plugin für Firefox ausprobiert, aber es scheint nicht zu funktionieren, zumindest unter Mac OS X. Vielleicht Automator, aber ich kann nicht herausfinden, wie es geht ...

1
Woher bekommt man "valueA"? Ist es auch in der URL und haben Sie vergessen, es zu erwähnen? Bitte beachten Sie, dass dies relativ mit einem Texteditor und einem regulären Ausdruck Suchen und Ersetzen zu tun haben sollte. Ich weiß nicht, ob ein Browser-Plugin dazu in der Lage ist. Ich nehme an, Sie haben diese URLs in einer Liste, die Sie einfügen können, um sie in einen Texteditor einzufügen. Oder sind sie wirklich getrennt und nicht kopierbar? Denn dann ist das Schreiben eines Benutzerskripts mit GreaseMonkey möglicherweise ein Makro-Plugin. Tom Wijsman vor 12 Jahren 0
`valueA` befindet sich nicht in der URL, auf der Inhaltsseite führt die URL zu. Ja, ich habe eine Liste der URLs und / oder Namen. Das ist kein Problem und nur der letzte Parameter (Name) ändert sich. Ein Userscript in GreaseMonkey könnte eine gute Idee sein (Danke!), Obwohl ich damit nicht vertraut bin. Im Moment dachte ich über ein Bash-Skript nach, das ** `cURL` ** [http://curl.haxx.se/] verwendet, um die Inhaltsseite zu extrahieren und **` sed` **, um die erforderlichen Werte aus dem Inhalt zu analysieren. Die Hauptprobleme sind die Handhabung des Web-Logins über HTTPS und der Wahnsinn des regulären Ausdrucks. user111780 vor 12 Jahren 0
Da es Logins gibt, kann es sein, dass Sie mehr auf eine Programmiersprache und Bibliotheken achten, die Formulardaten und Cookies übergeben können. Und dann alle Daten der Seiten auf dem Bildschirm abkratzen. Ich bezweifle, dass cURL Anmeldesitzungen unterstützt ... Tom Wijsman vor 12 Jahren 0

1 Antwort auf die Frage

0
Stoney

Dies sollte mit iMacros relativ einfach sein . Wenn sich alle Seiten in demselben kennwortgeschützten Konto befinden, können Sie sich normalerweise über den Browser anmelden und dann das Skript ausführen. Selbst wenn sie sich nicht hinter dem gleichen Login und Passwort befinden, ist es möglich, den Login-Prozess zu automatisieren, obwohl dies eine gewisse Komplexität bedeutet.

iMacros gibt seine Ergebnisse in einem CSV-Format zurück. Wenn es für iMacros schwierig ist, das gewünschte HTML-Element auszuwählen, wähle ich oft einen größeren Teil der Seite aus und extrahiere dann die genaue Zeichenfolge, die ich mit einer Mid () - Funktion in Excel benötige. Die Standalone-Vollversion von iMacros verfügt über einige hilfreiche Funktionen, die im Firefox-Plugin nicht vorhanden sind (zumindest in der GUI). Sie können das vollständige Programm kostenlos als 30-Tage-Testversion nutzen.

Alternativ können Sie wget verwenden, um alle Seiten herunterzuladen und dann lokal damit zu arbeiten. Es kann Seiten aus einer Liste von URLs abrufen. Wget erlaubt auch das Einloggen, obwohl ich das nicht probiert habe. Sobald Sie sie lokal haben, können Sie sie mit iMacros oder sogar einem Makro bearbeiten, das Texteditor wie notepad ++ ausführt.

Ein leistungsfähigeres Werkzeug wäre Scraperwiki . Das erfordert jedoch etwas Programmiererfahrung.