Получить URL из HTML-файла, используя FindStr

957
Eukleyv Cardoso

Я хотел бы предвосхитить это, сказав, что я очень новичок в командной строке, и я использую его только для некоторых WGET и YOUTUBE-DL, и что я на ПК с Windows 8.

Я хотел бы получить кучу ссылок из HTML-файла. Все ссылки начинаются с

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

и заканчивается

.jpg

Прямо сейчас я использую это:

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

Я провел некоторое исследование, и я использую функцию «диапазон» FINDSTR, как вы можете видеть. Но я все еще получаю много лишнего текста, который мне не интересен. Есть ли способ урезать его?

2
[теперь у вас есть две проблемы] (http://nedbatchelder.com/blog/201204/two_problems.html). HTML слишком сложен для findstr или regex в целом. Любое решение findstr в конечном итоге сломается Rich Homolka 8 лет назад 0

1 ответ на вопрос

2
Karan

As this StackOverflow answer states, you really shouldn't atempt to parse [X]HTML with regex. findstr has very limited regex support in any case.

Use a proper HTML scraper/parser like Xidel instead. A command like the following will do what you're looking for:

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