Как извлечь идентификатор элемента из файла HTML с помощью инструментов оболочки? - PullRequest
0 голосов
/ 06 августа 2011

У меня есть текстовый файл с именами каталогов (по одному в строке), и мне нужно открыть и просмотреть этот список.Принимая одно имя за раз, загружая соответствующую HTML-страницу и извлекая «item_id», который находится на странице.

Идентификатор элемента отображается следующим образом в HTML: ?item_id=55963573">.

Это то, что у меня так далеко внизу.

#!/bin/sh

for productID in (catIDs.txt) #I know this part is not correct
do
    wget -q -U Mozilla "http://www.example.com/$productID/" -O - \
     | tr '"' '\n' | grep "^item_id" | cut -d ' ' -f 4 >> itemIDs.txt
    sleep 15
done

Ответы [ 3 ]

1 голос
/ 06 августа 2011
cat catIDs.txt | while read productID;
do
  wget -q -U Mozilla "http://www.domain.com/$productID/" -O - \
  | tr '"' '\n' | grep "^item_id" | cut -d ' ' -f 4 >> itemIDs.txt
  sleep 15
done

или

while read productID;
do
  wget -q -U Mozilla "http://www.domain.com/$productID/" -O - \
  | tr '"' '\n' | grep "^item_id" | cut -d ' ' -f 4 >> itemIDs.txt
  sleep 15
done < catIDs.txt
1 голос
/ 06 августа 2011

Это должно работать:

#!/bin/sh

while read productID; do
    wget -q -U Mozilla "http://www.example.com/$productID/" -O - |
    sed -n -r 's/.*\?item_id=([0-9]+)"\>.*/\1/p'
done <catIDs.txt >itemIDs.txt
1 голос
/ 06 августа 2011

Если файл небольшой, используйте:

for productID in `cat catIDs.txt`
...