Загрузите документы, на которые ссылается веб-страница с wget

Немного сложного варианта, однако это работает вполне прилично.

head -2 file 
join <(grep "Xm Gen CDS" file | cat -n) \
     <(grep "Xm Gen extracted region" file | cat -n) | \
     sed 's/^[0-9]* //;s/CDS [0-9]*\s[0-9]*\(\s.*interval="\([0-9]*\)\s<-\s\([0-9]*\)\)/CDS\t\2\t\3\t\1/;s/ Xm Gen extracted.*//'
grep "Xm Gen extracted region" file

выполнять его как сценарий оболочки

#!/bin/bash
FILE="$1"
head -2 "$FILE"
join <(grep "Xm Gen CDS" "$FILE" | cat -n) \
     <(grep "Xm Gen extracted region" "$FILE" | cat -n) | \
     sed 's/^[0-9]* //;s/CDS [0-9]*\s[0-9]*\(\s.*interval="\([0-9]*\)\s<-\s\([0-9]*\)\)/CDS\t\2\t\3\t\1/;s/ Xm Gen extracted.*//'
grep "Xm Gen extracted region" "$FILE"
2
15.08.2013, 01:49
1 ответ

Не уверенный, если я получаю Ваш вопрос, но я собираюсь попытаться ответить так или иначе.

То, что Вы получаете от URL, является JSONP, но JSONP не обрабатывается wget вообще. wget просто программа загрузки, как отмечено здесь в странице справочника для wget:

GNU Wget является свободной утилитой для неинтерактивной загрузки файлов с сети.

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

Предположение, что Вы пишете своего рода сценарий оболочки, можно также хотеть использовать jsawk для выборки данных. См. этот ответ для примера.

После того как Вы проанализировали JSON (P), можно идти вперед и загрузить файлы, перечисленные с JSON (P) данные с wget.

2
27.01.2020, 22:14
  • 1
    При передаче -r флаг, wget может проанализировать данные HTML для ссылок. –   15.08.2013, 02:07

Теги

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