Извлечь строки из файла HTML

Загрузка файлов изображений отдельно

Я думаю, что эта команда может вас запустить.

 wget -r -P /save/location -A jpeg,jpg,bmp,gif,png http://textbook.s-anand.net/ncert/class-xii/chemistry/hello-this-first-chapter

Позволяет указать местоположение для сохранения изображений и типов файлов, которые вы хотите. Возможно, загрузка изображений как таковая проще.

Источник:

-r позволяет рекурсивное извлечение. См. Рекурсивную загрузку для получения дополнительной информации. -P устанавливает префикс каталога, в котором сохраняются все файлы и каталоги. -A устанавливает белый список для извлечения только определенных типов файлов. Строки и шаблоны принимаются, и оба могут использоваться в списке, разделенном запятыми (как показано выше). Дополнительные сведения см. В разделе Типы файлов.

Копирование файлов изображений из вашей папки

Я заметил, что на сайте используются файлы изображений PNG. Вы можете просто скопировать их из своей папки. Это должно быть запущено в папке, где вы храните веб-страницу.

find . -name "*.png" -exec cp '{}' ./some_dir/somewhere/ \;
1
задан 25 December 2015 в 20:52

8 ответов

Используя grep с помощью PCRE (-P):

grep -Po 'SRC="\K[^"]+(?=")' testfile.txt

С sed:

sed -nr 's/.*SRC="([^"]+)".*/\1/p' testfile.txt

Оба берут нужную строку, заключенную в двойные кавычки, и есть SRC= спереди.

Пример:

% wget -q -O- http://pastebin.com/raw/VbrXHEYd | grep -Po 'SRC="\K[^"]+(?=")'      
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html

% wget -q -O- http://pastebin.com/raw/VbrXHEYd | sed -nr 's/.*SRC="([^"]+)".*/\1/p'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
2
ответ дан 23 May 2018 в 14:47
  • 1
    Мне нравится этот. +1. И если вы действительно хотите убедиться, что получаете только атрибуты iFrame src, не можете ли вы также добавить еще один grep для " iFrame " первый? – G Trawo 25 December 2015 в 22:18
  • 2
    @GTrawo, чтобы сделать его более надежным, вы можете просто использовать шаблон ^\s*<IFRAME\s.*\sSRC="\K[^"]+(?=") вместо этого. – heemayl 25 December 2015 в 22:21

Поскольку он запросил интерактивный сценарий оболочки, это может быть альтернативой (предполагая, что html загружается на ваш компьютер). Скопируйте следующее в Gedit:

#!/bin/sh
echo -n "Please enter the name of the website (such as vodlocker): "
read site

wget -c $(grep IFRAME ~/Downloads/VbrXHEYd.html | awk '/<IFRAME/ {print $4}' | awk -F'"' '{print $2}')
Сохраните файл как somename.sh. Теперь дайте исполняемым файлам разрешения:
chmod a+x /path/to/somename.sh
Затем запустите файл как:
sh /path/to/somename.sh

Вот скриншот:

0
ответ дан 23 May 2018 в 14:47

вы также можете использовать html2 с sed:

$ curl -s http://pastebin.com/raw/VbrXHEYd | html2 | sed '/iframe\/@src=/!d;s/^.*src=//'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
0
ответ дан 23 May 2018 в 14:47

вы также можете использовать html2 с sed:

$ curl -s http://pastebin.com/raw/VbrXHEYd | html2 | sed '/iframe\/@src=/!d;s/^.*src=//'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
0
ответ дан 23 May 2018 в 14:47

вы также можете использовать html2 с sed:

$ curl -s http://pastebin.com/raw/VbrXHEYd | html2 | sed '/iframe\/@src=/!d;s/^.*src=//'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
0
ответ дан 23 May 2018 в 14:47

вы также можете использовать html2 с sed:

$ curl -s http://pastebin.com/raw/VbrXHEYd | html2 | sed '/iframe\/@src=/!d;s/^.*src=//'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
0
ответ дан 23 May 2018 в 14:47

вы также можете использовать html2 с sed:

$ curl -s http://pastebin.com/raw/VbrXHEYd | html2 | sed '/iframe\/@src=/!d;s/^.*src=//'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
0
ответ дан 23 May 2018 в 14:47

вы также можете использовать html2 с sed:

$ curl -s http://pastebin.com/raw/VbrXHEYd | html2 | sed '/iframe\/@src=/!d;s/^.*src=//'
http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html
0
ответ дан 23 May 2018 в 14:47

Другие вопросы по тегам:

Похожие вопросы: