Иногда может потребоваться определить этот небезызвестный показатель в своей программе.
Задавшись этим вопросом, полез смотреть, с каких страниц его можно спарсить. Первое, что попадается, это картинка, которая показывается при просмотре аттестата WebMoney (например, вот эта). Далее в заметке буду использовать wmid 000000000000 для примера. Можно и картинку распознать – не вопрос, но зачем так сложно?
Побродив немного по форумам и прочим ссылкам из выдачи, нашёл ещё пару возможностей определить WebMoney BL. Пара скриптов с https и, о чудо, простой скрипт, выдающий основную информацию о сертификате.
Итак, наша цель сводится к простой задаче парсинга html-страницы.
Что парсим? http://passport.webmoney.ru/asp/certcard.asp?id=000000000000 – вот ссылка. Зайдя на неё, видим информацию о: типе аттестата, фио, бизнес-уровне (тот самый BL), дате регистрации и количестве претензий. Мы спарсим только BL, но ничего не стоит потом изменить программу и для парсинга остальных значений.
Для простоты поставим на форму TIdHTTP, TEdit и TButton. В процедуре Button1Click создадим переменные:
var resp: string; bl, err: integer;
В resp получим код страницы:
resp:=IdHTTP1.Get('http://passport.webmoney.ru/asp/certcard.asp?id='+Edit1.Text);
Теперь присмотримся к коду страницы: нужное нам значение бизнес-уровня находится сразу после [BL]:</span> и пробела. Чтобы получить это число, скопируем 10 символов после этого фрагмента и используем процедуру Val:
Val(Copy(resp ,Pos('[BL]:</span>',resp)+13,10), bl, err);
Если всё сработало правильно (то есть WebMoney не поменяли формат вывода того скрипта), то в bl окажется так нужный нам Business Level, а в err – 0, если длина BL 10 символов (что вряд ли возможно), 1 в случае ошибки или число от двух до десяти, которое показывает позицию первой «не цифры».
То есть, в случае err=1 мы имеем ошибку, иначе bl получен верно. Весь код:
procedure TForm1.Button1Click(Sender: TObject);
var
resp: string;
bl, err: integer;
begin
resp:=IdHTTP1.Get('http://passport.webmoney.ru/asp/certcard.asp?id='+Edit1.Text);
Val(Copy(resp ,Pos('[BL]:</span>',resp)+13,10), bl, err);
if err<>1 then
ShowMessage('WebMoney BL: '+inttostr(bl))
else
ShowMessage('error retrieving WebMoney BL');
end;
(c) crystalbit, http://parsers.info
А зачем это нужно, можно на сайте ВебМани узнать всю нужную информацию о ВМИДе!
Чтобы потешить себя этим языком программирования.)
Мне тоже нравиться делать разные бессмысленные вещи и программы, не для того чтобы они приносили пользу а просто чтобы понять как это работает и смогу ли я создать подобные функции)
С вебмани всегда такие головняки, причем эта политика безопасности с одной стороны радует а с другой так удручает
согласен, были проблемы с вебмани.
Как -то никогда не думал, а зачем может понадобиться определять эти показатели?
Для меня, например, очень важен BL моих партнёров и клиентов. Столько кидал и лохотронщиков развелось по интернету, что при каждом переводе денег в ВМ обязательно просматриваешь всю историю вмида.
Я так и не понял для чего это делалось ведь самом вебмани можно посмотреть какой bl у пользователя
<<Можно и картинку распознать – не вопрос, но зачем так сложно?
Можно сразу в проекте и картинку вывести, парсить тогда не придется
Можно было тогда просто получить просто картинку и вывести ее в проекте. За статью спасибо
Спамеры, из акисмета вас всех повытаскивал :)
Зачем это нужно? Картинкой не всегда можно удовлетвориться, вдруг нужно получить числовое значение – может динамику посмотреть, или в таблицу текстовую вставить.
Можно посмотреть картинкой на сайте wm? Перечитайте название блога :)
Привет, dimas!
а зачем такие заморочки с парсингом хтмл, когда есть удобный и небольшой xml-интерфейс? Там и бизнес-левел цифрами, а не картинкой и много других параметров. Подробно описал Роман, не буду повторяться (http://grabberz.com/showpost.php?p=294692&postcount=11)
Привет, рад видеть тебя на блоге :)
Как обычно, напишешь что-нибудь, и – бац! – это уже было в Симпсонах, при чём не так давно. Написал бы на пару месяцев раньше, был бы первым :)
Да, xml-интерфейс я видел, но не хотел париться с ssl. В моём же варианте чистый http.
Ну ты вообще..)) А попробовать букву S убрать? Все замечательно получается. Пример запроса:
POST /xml/XMLGetWMIDInfo.aspx HTTP/1.1
User-Agent: NemeZz Browser
Host: passport.webmoney.ru
Connection: Close
Content-Length: 47
Z2067315xxx64
ну и ответ получает отлично)
:-[ я настолько ленивый)
смотрю – https, ну и думаю, что это для того, чтобы только по ssl получать можно было.
Спасибо за то, что заходишь и мысли хорошие говоришь :)
ИМХО, не очень-то часто такая программка может понадобиться. Да и ручками можно все это узнать. Разве что для создания базы ВМИДов этот скрипт пригодится…
С вебмани можно использовать их готовые системы, которые отлично вживляются в паскаль и делфи (читайте на офф сайте)
код для саамых ленивых).
согласен s лишняя.
Так информацию об Бизнес Уровне можно посмотреть и сайте ВМ по нужному WMID? Или я что-то упустил?
Уважаемая администрация извините, за оффтоп я тут маленькую ссылочку оставлю, вы её только не удаляйте, извините за маленький спам http://google.com/
Ну это ж пример…
Не во всех же сервисах можно так просто инфу посмотреть…
Бродяга, показатель определяет степень надежности wmid’a, путем прохода через него каких либо сумм. БЛ 1, насколько я помню, равняется 1к рублей.
> БЛ 1, насколько я помню, равняется 1к рублей
бред
Спасибо за статейку! Очень пригодиться… Сейчас как раз пишу на Делфях маленькую утилитку и эта функция будем весьма кстати…
Вообще это БЛ растет хоть, у меня моему кашельку уже 2 года а все по нулям, и деньги кидал и тратил и аттестат формальный
Всё зависит от того, как много поступало денег и с разных ли кошельков? если с 1 кошелька/счёта поступают деньги, то бл расти не будет, надо чтобы с разных.
Ещё как растёт, если активно пользоваться! Работаю с рекламой на сайтах, иногда вывожу – уже BL70+
Зачем такая сложность, когда всю нформацию о пользователе WMID можно просмотреть на сайте вебмани.
SashaOskol, надо не тратить, а наоборот принимать от других.
BL зависит от таких факторов, как часто и на какую сумму тратите и принимаете.
А от того сколько лет вашему ВМИДу не много зависит.
В общем BL растет или падает от того как часто и сколько вы делаете денежных операций.
Зачем такая сложность, когда всю нформацию о пользователе WMID можно просмотреть на сайте вебмани.
Вообще это БЛ растет хоть, у меня моему кашельку уже 2 года а все по нулям, и деньги кидал и тратил и аттестат формальный
У меня бывший вебмани имеет бл 20, бывший так как просрочил сертификат, а восстановить честно лень. единственное не могу понять как мой вмид получил этот бл 20, зареган правда в 2006 или 2007 году. Если пишут что 1 бл = 1 тыс руб, то что это Я 20 тыс крутанул :))
Насчет 1 бл = 1 тыс руб – это не доводы
И про это точно не написано.
Бывало что бл опускался из-за того что операции не проводились какоето время, а потом одна операция рублей так на 200-300 и бл поднимался опять
нормально так, но как вариант можно вывести и картинку, просто если пишешь софтину тот тут не обессудьте – серый квадратик из сайта вебмани не совсем впишется – придется парсить рисунок на предмет текстовых циферок.
А в динамике(изменении за определенное время) узнать BL можно?
Может кто-то выложит код парсилки, только на PHP?
А мне пригодилась данная статейка. Спасибо автору. Писал как раз небольшую програмулину где нужно было выводить BL.
А через сайт вебмани нельзя запарсить инфу в окно приложения?
А у меня было такое, БЛ не обновлялся месяц, хотя операций куча была, а потом резко стал 19
А мне понравилась статья, сохранил с закладки. По-моему, здесь рассмотрена полезная и нужная информация, которая действительно может не раз пригодиться, если понадобится узнать числовое значение, например. Спасибо за вашу работу :)
BL такая штука не поймеш как считает, а вообще сам ВЕбмани ее выводит.
за 3 года + 65 у меня
Спасибо за статейку! Очень пригодиться… Сейчас как раз пишу на Делфях маленькую утилитку и эта функция будем весьма кстати…
А зачем это нужно, можно и на сайте Веб мани это найти ?
Есть ли возможность просмотреть были ли притензии в прошлом (которые сняты сейчас), вроде истории притензий BL?
Мне приходиться каждый день проверять чьи то вмиды на количество бл, так сказать уровень доверия))
Бизнес левел накрутить можно до 10-20
Не знаю зачем на него вообще смотреть.
Атестат играет важней роль.
А что, в делфи нет регулярных выражений? :3
Есть :p
Я пользуюсь веб мани всего полгода и не очень понял для чего все это надо? деньги приходят снимаю и все…
Это надо для того, чтобы знать, сколько человек пользуется Вебмани, сколько проводил операций, какой аттестат и т.п.
BL – это некий идентификатор доверия и чем больше он, тем болше доверия тех людей, с которыми идут расчёты в интернете.
Столько телодвижений ради определения BL, который можно посмотреть на сайте вебмани?
Всего одно – нажать на кнопку в своей программе. Или вообще без них – программа сама проверяет и информирует.
Это не какой-то там ваш сайт вэбмани, на который ещё заходить надо, браузер там открывать)
Это не просто чтоб узнать, а чтоб применит и внедрить в функционал, а так конечно можно и на сайте посмотреть
Мне всегда нравилась их политика безопасности, чувствую себя защищенным..
Статье не хватает живых примеров применения описанного в ней парсера.
Спасибо за удобный способ. Часто приходится узнавать BL, чтобы определить, стоит ли доверять человеку или нет.
Лучше один раз запариться зато потом горя не знать. Но это не для тех кому BL нужно раз в год посмотреть, скорее для тех кому нужны постоянно такие данные.
Я лично всегда смотрю на официальном сайте эту информацию. Но и Ваш релиз тоже очень радует, хорошая задумка…
полгода пользовался вебмани..мне не понравилось,постоянно какие то проблемы!
Спасибо большое автору! Теперь можно будет отслеживать тех мошенников, которые утверждают на картинках, что наш уровень доверия слишком большой!
Как то переустановил винду и кошель с 1к рублями не востановил и в поддержку и туда и сюда и в итоге ничего!
: (
Можно гораздо проще. Регаемся на вммаил и смотрим стену. Там пишет бл
нее, это не проще, это через посредников)
Мне уже 5 лет BL не нужен.
Ок
А сколько времени ушло на написание парсера?
Еще интересует, есть ли у вас статьи, как от парсинга наоборот – защититься?
И возможно ли это? Спасибо!
Минут 15 ушло, это с поиском нужных страниц и т.п.
Про защиту от парсинга – спасибо, идея хорошая для статей.
Насколько это возможно? Так, чтобы через браузер пользователь мог получать информацию, а написать для этого же программу – нет, сделать практически невозможно, но усложнить до предела можно. Если бы у WebMoney была только картинка для определения bl, например. Или число выдавал скрипт после получения wmid и какого-нибудь хэша, посчитанного только по известному программерам алгоритму. Но есть примеры, в истории той же аськи, например, когда алгоритмы раскрывались, хэши подбирались, но сил было потрачено много.