LINUX.ORG.RU

Парсинг страницы


0

0

Проблема с парсингом страницы. Задача: вытянуть скриптом хтмлки, выдернуть нужную строку, из нее название файла, вытянуть файл. Пока что написал вот такое: http://paste.org.ru/?r9ijl9 , но 6ая строка меня убивает. Что с ней можно сделать? Также с радостью выслушаю замечания по стилю программирования

P.S.

Скрипт тянет все комиксы с xkcd =) Писал очень быстро, поэтому форматирования кода нету. Удаление страниц можно сделать в цикле помле закачки, да =)

Ответ на: комментарий от anonymous

Питон я не знаю =)

Сижу, дописываю пятый велосипед для пятой страницы с комиксами.. С проверкой на свежесть, на последний скачаный и пр... Кошмар, хуже анимешника =)

rebarned
() автор топика
Ответ на: комментарий от rebarned

> Питон я не знаю =)

Питон хороший.

> С проверкой на свежесть

Зачем? Есть же rss. А комиксы классные, да.

anonymous
()

>Также с радостью выслушаю замечания по стилю программирования

Не замечания, а скорее мысли в слух и по поводу. Может быть автору они будут интересны. Я бы:

1) вместо /bin/bash использовал /bin/sh

2) вместо wget'а скачивал бы html-страницы с помощью links/lynx

3) вместо echo выводил бы printf'ом

4) не делал бы exit 0 в конце. Оно здесь не нужно

5) на предпоследней строчек ты забыл echo

6) comicsname=`cat c${NUM}.html | grep 'URL for this image' | sed "s/^\t*<h3>URL for this image: //" | sed "s/<\/h3>//" | cut -d'/' -f5 | sed "s/.jpg//"`

Вот эту строку можно сжать раз в 5, наверное. К примеру:

- вместо cat word | grep file использовать grep word file. Получим:

comicsname=`grep 'URL for this image' c${NUM}.html | sed "s/^\t*<h3>URL for this image: //" | sed "s/<\/h3>//" | cut -d'/' -f5 | sed "s/.jpg//"`

- можно несколько sed-выражений объединить в одно:

comicsname=`grep 'URL for this image' c${NUM}.html | sed "s/^\t*<h3>URL for this image: //;s/<\/h3>//" | cut -d'/' -f5 | sed "s/.jpg//"`

- всё равно ещё можно ужать эту строку ;)

php-coder ★★★★★
()
Ответ на: комментарий от php-coder

1, 3 и 4 скорее на автомате.

2 думал, но забил. В каррент варианте (для других комиксов ^_^) вгет качает в темпфайл, парсим егои затираем сверху.

5 Заметил, спасибо =)

6 Там изначально был не греп, а чуть другое, поэтому кат. С регэкспами у меня все грустно ,поэтому... Учим =)

rebarned
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.