curl парсинг

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Raschen
рядовой
Сообщения: 21
Зарегистрирован: 2011-11-29 20:21:05

curl парсинг

Непрочитанное сообщение Raschen » 2012-12-02 17:09:33

вот пример странички откуда мне надо вытащить инфу http://bzda.ru/spisok.html
получилось только так

Код: Выделить всё

curl 'http://bzda.ru/spisok.html' | sed 's/</\n\</g;s/>/>\n/g' | grep -v '<.*>\|^$' > spisok.txt
вывод этого выражения http://bzda.ru/spisok.txt
а мне надо чтоб вывод был вот такой http://bzda.ru/rezultat.txt

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: curl парсинг

Непрочитанное сообщение kpp » 2012-12-04 22:41:25

Код: Выделить всё

curl 'http://bzda.ru/spisok.html' | sed -n '/<tr[> ]/,/<\/tr>/{
                //,/<\/tr>/H
                /<tr[> ]>/h
                /<\/tr>/{
                         x
                         s/\n//g
                         s/<tr[^>]*>//g
                         s/<\/tr>//g
                         s/<td>//g
                         s/<br>//g
                         s/<[\/]*b>/ /g
                         s/<--->\{2,\}/>/g
                         s/^<-->//
                         /^[0-9][0-9]*/{
                           s/^\([^<---->]*<---->\)\{2\}\([^<--->]*\)<-->.*\(Телефон:  [^ ]*\) .*$/\2<-->\3/
                           p
                           }
                        }
                }'
<---> - табуляция
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Raschen
рядовой
Сообщения: 21
Зарегистрирован: 2011-11-29 20:21:05

Re: curl парсинг

Непрочитанное сообщение Raschen » 2012-12-07 14:59:23

ошибку выдает вот такую

Код: Выделить всё

bzda# ./lis.sh
sed: 15: "/<tr[> ]/,/<\/tr>/{
    ...": RE error: invalid character range
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2582  100  2582    0     0   744k      0 --:--:-- --:--:-- --:--:-- 2521k

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: curl парсинг

Непрочитанное сообщение kpp » 2012-12-07 18:04:36

Какая система, какой шелл?
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Raschen
рядовой
Сообщения: 21
Зарегистрирован: 2011-11-29 20:21:05

Re: curl парсинг

Непрочитанное сообщение Raschen » 2012-12-07 23:33:01

FreeBSD bzda.ru 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:46:30 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
#!/bin/sh

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: curl парсинг

Непрочитанное сообщение kpp » 2012-12-07 23:54:17

Проверьте: все <---> - это табуляция.
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: curl парсинг

Непрочитанное сообщение kpp » 2012-12-08 0:00:41

В строках 12 - две табуляции,13 - одна табуляция,15 - пять табуляций.
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Raschen
рядовой
Сообщения: 21
Зарегистрирован: 2011-11-29 20:21:05

Re: curl парсинг

Непрочитанное сообщение Raschen » 2012-12-08 0:01:02

если заменяю <----> табами то пустой вывод идет
как я понял сколько дефисоф столько табов? тоесть (--- = таб таб таб) (- = таб)

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: curl парсинг

Непрочитанное сообщение kpp » 2012-12-08 0:02:44

Raschen писал(а):если заменяю <----> табами то пустой вывод идет
как я понял сколько дефисоф столько табов? тоесть (--- = таб таб таб) (- = таб)
Нет!
Одна комбинация <----> - один таб!
Мало того в строке 12 есть табуляция которая отображается просто как >
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

Raschen
рядовой
Сообщения: 21
Зарегистрирован: 2011-11-29 20:21:05

Re: curl парсинг

Непрочитанное сообщение Raschen » 2012-12-08 0:11:44

благодарю все получилось