Rufen Sie mithilfe von FindStr eine URL aus der HTML-Datei ab

1094
Eukleyv Cardoso

Ich möchte dies vorwegnehmen, indem ich sage, dass ich an der Eingabeaufforderung sehr neu bin und sie nur für einige WGET und YOUTUBE-DL verwendet habe und dass ich auf einem Windows 8-PC bin.

Ich möchte eine Reihe von Links aus einer HTML-Datei erhalten. Die Links beginnen alle mit

https://s-media-cache-ak0.pinimg.com/originals/

und enden mit

.jpg

Im Moment verwende ich das:

findstr ^https://s-media-cache-ak0.pinimg.com/originals/.*\.jpg index.html > urls.txt

Ich habe etwas recherchiert und benutze die "Range" -Funktion von FINDSTR, wie Sie sehen können. Ich bekomme aber immer noch eine Menge zusätzlicher Texte, die mich nicht interessieren. Gibt es überhaupt etwas, um ihn zu beschneiden?

2
[jetzt haben Sie zwei Probleme] (http://nedbatchelder.com/blog/201204/two_problems.html). HTML ist für findstr oder regex generell zu komplex. Jede findstr-Lösung wird irgendwann brechen Rich Homolka vor 9 Jahren 0

1 Antwort auf die Frage

2
Karan

Bei dieser StackOverflow-Antwort sollten Sie wirklich nicht versuchen, [X] HTML mit regex zu analysieren. findstr hat auf jeden Fall eine sehr eingeschränkte Regex-Unterstützung.

Verwenden Sie stattdessen einen richtigen HTML- Scraper / Parser wie Xidel . Ein Befehl wie der folgende wird das tun, wonach Sie suchen:

xidel <URL or HTML file name> -q -e "//a/extract(@href/resolve-uri(.), 'https:\/\/s-media-cache-ak0\.pinimg\.com\/originals\/.*?\.jpg')[. != '']"