Найти и скопировать строку в HTML-код - PullRequest
1 голос
/ 03 августа 2010

Я пробую что-то новое, обычно я делаю это на C # или VB.Но по соображениям скорости я хотел бы сделать это на моем сервере.

  1. Открыть файл term.txt
  2. Взять каждый элемент по одному из term.txt и открыть URL(возможно, завиток или что-то еще) и перейдите к http://system.com/set=terms
  3. Просмотрите исходный HTML-код и извлеките имена картинок (stringB).Найдите изображение = StringB & location
  4. Сохраните StringB в imgname.txt
  5. Закройте файл и перейдите к следующему элементу в term.txt

Я смотрел на sed , но я считаю, что awk может быть лучшим способом?Это все новое для меня, создание такой команды для запуска под оболочкой.Я знаком с использованием Linux, просто нужна помощь с командами.

Ответы [ 2 ]

3 голосов
/ 03 августа 2010

Что-то не совсем похожее на это должно сработать, в зависимости от точного формата term.txt (сценарии оболочки лучше всего справляются с одной записью в строке) и от того, нужно ли вам на самом деле анализировать HTML (надеюсь, вы этого не делаете):

#! /bin/sh

if [ $# -ne 2 ]; then
    echo "usage: $0 termfile baseurl" >&2
    exit 1
fi
termfile="$1"
baseurl="$2"

while read term; do
    wget -q -O- "$baseurl/set=$term" |
      sed -ne 's/^.*image=\([^&]*\)&.*$/\1/p'
done < "$termfile"

Вы сохраняете это в файл с именем «extractimages», chmod + x и запускаете его так:

$ ./extractimages terms.txt http://system.com > imgname.txt
1 голос
/ 03 августа 2010
sed 's|^.*$|wget -q -O- http:\/\/system.com/set=&|' file | bash |sed -ne 's/^.*image=\([^&]*\)&.*$/\1/p' 
...