Страница 1 из 1

curl парсинг

Добавлено: 2012-12-02 17:09:33
Raschen
вот пример странички откуда мне надо вытащить инфу 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

Re: curl парсинг

Добавлено: 2012-12-04 22:41:25
kpp

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

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
                           }
                        }
                }'
<---> - табуляция

Re: curl парсинг

Добавлено: 2012-12-07 14:59:23
Raschen
ошибку выдает вот такую

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

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

Re: curl парсинг

Добавлено: 2012-12-07 18:04:36
kpp
Какая система, какой шелл?

Re: curl парсинг

Добавлено: 2012-12-07 23:33:01
Raschen
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

Re: curl парсинг

Добавлено: 2012-12-07 23:54:17
kpp
Проверьте: все <---> - это табуляция.

Re: curl парсинг

Добавлено: 2012-12-08 0:00:41
kpp
В строках 12 - две табуляции,13 - одна табуляция,15 - пять табуляций.

Re: curl парсинг

Добавлено: 2012-12-08 0:01:02
Raschen
если заменяю <----> табами то пустой вывод идет
как я понял сколько дефисоф столько табов? тоесть (--- = таб таб таб) (- = таб)

Re: curl парсинг

Добавлено: 2012-12-08 0:02:44
kpp
Raschen писал(а):если заменяю <----> табами то пустой вывод идет
как я понял сколько дефисоф столько табов? тоесть (--- = таб таб таб) (- = таб)
Нет!
Одна комбинация <----> - один таб!
Мало того в строке 12 есть табуляция которая отображается просто как >

Re: curl парсинг

Добавлено: 2012-12-08 0:11:44
Raschen
благодарю все получилось