Sie müssen eine .bat-Datei schreiben, um den gesamten Text auf einer Webseite auszuwählen und den Text in eine neue txt-Datei einzufügen

-1

Unten ist das, was ich bisher habe, das Chrom öffnet, zur URL geht und dann eine neue TXT-Datei öffnet. Ich muss den gesamten Text auf der Seite auswählen, kopieren, in die Datei BigData.txt einfügen und die Datei dann auf dem Desktop speichern. Ist das möglich?

CD C:\Program Files (x86)\Google\Chrome\Application\   
start chrome.exe http://en.wikipedia.org/wiki/Big_data
CD C:\Users\TomD\Desktop
echo >BigData.txt
end;

Vielen Dank an alle

Tom Davidson
quelle
2
Dies sieht gefährlich aus wie ein XY-Problem . Was versuchst du wirklich zu tun? Wie in, was erwarten Sie in diesem Beispiel in BigData.txt? Sie möchten die Seite so wie sie im Browser angezeigt wird? Das HTML? Der gesamte Text (einschließlich der Menüs usw.) ohne Formatierung? Nur der Body-Text ohne Formatierung? Etwas anderes? Noch wichtiger - was ist das Endziel? Sie hoffen, Wikipedia zu kratzen, um ____ zu tun?
ernie
Kopieren Sie den Text so einfach wie möglich - er muss nicht formatiert werden. Also denke ich nur den Body-Text ohne Formatierung. Ich habe gerade diese Wikipedia-Seite als Beispiel verwendet. In diesem Projekt geht es nicht so sehr um das Endergebnis, sondern darum, dorthin zu gelangen. Danke für deine Antwort!
Tom Davidson
Ist das eine Hausaufgabe? Wenn das Endergebnis nicht wichtig ist, verstößt dies gegen unsere FAQ, da sich alle Fragen zu SuperUser auf ein aktuelles Problem beziehen müssen und nicht nur auf gelegentliches Interesse. superuser.com/faq
allquixotic
Nein, Sie können im Befehlsfenster keinen Text aus dem Internet Explorer "lesen". Es gibt Hilfsprogramme von Drittanbietern, die das rohe Markup der Webseite zurückgeben können, aber es bleibt Ihnen überlassen, es zu sortieren. In Windows sind keine Funktionen integriert, mit denen Sie das tun können, was Sie möchten.
Lee Harrison

Antworten:

4

Sie sprechen wirklich von Web-Scraping , was allein mit Batch-Dateien schwierig sein wird, insbesondere wenn Sie nur einen bestimmten Teil einer Seite suchen.

Wenn Sie die gesamte Webseite herunterladen möchten, empfehlen wir Ihnen eine Windows-Version von wget oder curl . Beide können problemlos in ein Batch-Skript integriert werden und laden den HTML-Code für eine Webseite herunter. Beachten Sie, dass der eigentliche Grund für die Verwendung dieser Tools anstelle von Chrome darin besteht, dass es sich im Gegensatz zu einem GUI-basierten Browser wie Chrome um Befehlszeilentools handelt.

Sobald Sie den HTML-Code haben, müssen Sie wahrscheinlich eine echte Skriptsprache verwenden, um die HTML-Datei zu analysieren und nur den Haupttext des Artikels zu extrahieren.

Ernie
quelle
2

Laden Sie zuerst "wget.exe" herunter und speichern Sie es im selben Ordner wie Ihre .bat-Datei (oder in einem beliebigen Ordner in Ihrem Pfad).

Dann benutze:

set urlPath=www.wikipedia.com
set urlFile=index.html
set urlPathOuput="C:\users\%username%\Desktop"
set urlFileOutput=WiKiPeDiA.txt
wget %urlPath%/%urlFile%
type %urlFile% > %urlPathOuput%\%urlFileOutput%
del %urlFile%

Veränderung:

www.wikipedia.com zum Webseitenordner

index.html in die Webseitendatei

C: \ users \% username% \ Desktop in einen Ordner auf Ihrem PC

WiKiPeDiA.txt zu der Datei, die in dem zuvor definierten Ordner erstellt werden soll

SCHRITT FÜR SCHRITT

Zunächst speichert der Code einige Variablen. Dann lädt wget die Datei der Webseite in den Ordner% cd% herunter (hier würde es "www.wikipedia.com/index.html" herunterladen).

Anschließend wird der Inhalt der heruntergeladenen HTML-Datei in einer Nur-Text-Datei gespeichert (hier wird eine neue Datei mit dem Namen "WiKiPeDiA" in "C: \ users \% username% \ Desktop" (dem Desktop des aktuellen Benutzers) erstellt .TXT").

Schließlich wird die Web-Seitendatei gelöscht.

Hinweis:

Wenn Sie den Inhalt der Datei mit den Tags speichern möchten, ist dies der Code.

Wenn Sie den vom Browser angezeigten Text speichern möchten, müssen Sie ihn analysieren und filtern, bevor Sie ihn in der Datei speichern.

Das habe ich noch nie gemacht, aber das würde ich machen:

1. set linenumber=0
2. set characternumber=0
3. find the first "<", after linenumber&characternumber and save it in linenumber2 and the characternumber2.
4. echo everything from linenumber&characternumber to linenumber2&characternumber2.
5. find the first ">" after the previous "<" which was in linenumber2, characternumber2. Save it in linenumber and characternumber.
6. goto step 3

Hoffe es hat geholfen!

AskPGSV
quelle