Имя: Пароль:
IT
Веб-мастеринг
Как работает ссылка на irr.ru
,
0 AnKa4
 
02.09.13
09:53
Доброго времени суток! Помогите, пожалуйста разобраться. Задача состоит в парсинге телефона с сайта irr.ru со страниц объявлений. Такой как, например, http://komsomolsk.irr.ru/real-estate/apartments-sale/secondary/1-komn-kvartira-Internacional-nyy-pr-kt-15-5-9-advert281516958.html.

На странице номер телефона скрыт, но присутствует ссылка которая его раскрывает.

<li>
                <p>Телефон:</p>
                <p id='contact_phones'>XX-XX-XX, XXXXXXXXXXX — <a href="#phone" id='show_contact_phones'>Показать телефон</a></p>
            </li>

Вот не могу понять как эта ссылка работает, а очень нужно решить задачу.
1 Wobland
 
02.09.13
09:54
a href="#phone"
2 zak555
 
02.09.13
09:54
# - якорь ?
3 Кай066
 
02.09.13
10:03
это работает вот так


<script type="text/javascript">
<!--
document.write("<img src='http://counter.yadro.ru/hit;irr?r";+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";"+Math.random()+
"' width=1 height=1 alt=''>")//-->
</script>
<img width="1" height="1" alt="" src="http://counter.yadro.ru/hit;irr?r;s1366*768*24;uhttp%3A//komsomolsk.irr.ru/real-estate/apartments-sale/secondary/1-komn-kvartira-Internacional-nyy-pr-kt-15-5-9-advert281516958.html%23phone;0.06742270774619152">;
<img width="1" height="1" alt="" src="http://counter.yadro.ru/hit;irr?rhttp%3A//irr.ru/;s1366*768*32;uhttp%3A//russia.irr.ru/;0.9665944403968751">;
4 Кай066
 
02.09.13
10:03
это яваскрипт
5 eRik
 
02.09.13
10:07
там чуть дальше телефона:

<input id='allphones' type='hidden' value="Kzc5MTQwNzc4NjU2ICA=" />

вот это value - это Base64 закодированный телефон.
в данном случае это +79140778656
6 AnKa4
 
02.09.13
10:14
(5) Его раскодировать самому как-то можно?
7 eRik
 
02.09.13
10:20
Base64 то??
как бы даже не в 1С есть встроенная функция ))
8 AnKa4
 
02.09.13
10:21
(7) ага, точно можно. Теперь только осталось функцию узнать
9 Wobland
 
02.09.13
10:24
(8) продам СП. дорого
10 BigHarry
 
02.09.13
10:25
Вот поэтому-то и надо телефоны и мылы прятать в картинку, что бы спамерье всякое не разпарсило...
11 AnKa4
 
02.09.13
10:25
Да нашел уже Base64Значение(<Строка>) - проверяю работоспособность )
12 AnKa4
 
02.09.13
10:25
(10) Да не собираемся мы спамерить. Просто в 1С анализировать объявления удобнее
13 BigHarry
 
02.09.13
10:27
(12) Ну да, конечно, а сексом удобней стоя в гамаке заниматься...
14 Никола_
Питерский
 
02.09.13
10:27
(12) Это просто начальство тебе всего не рассказало )))
Как только ты им базу сделАшь, у них придет эта генитальная мысль.
15 Никола_
Питерский
 
02.09.13
10:28
Читать (12) нужно так:
Я кроме 1С ничего не умею.
16 Кай066
 
02.09.13
10:30
17 AnKa4
 
02.09.13
10:38
Там суть в том, чтобы имея телефон, отбирать его объявления и по количеству его объявлений видеть кто он частник или риэлтор. Так что никто не будет отсылать на телефоны никакие сообщения (16) ни тем более в PDF с печатями )).
18 AnKa4
 
02.09.13
10:39
(17) + Лучше подскажите
Получил из строки "Kzc5MTQwNzc4NjU2ICA=" двоичные данные такие:
"2B 37 39 31 34 30 37 37 38 36 35 36 20 20"
как мне получить номер телефона из этого теперь?
19 AnKa4
 
02.09.13
10:40
(18)+ Получил функцией Base64Значение(<Строка>)
20 ДенисЧ
 
02.09.13
10:41
(18) Продам СП дорого.
21 AnKa4
 
02.09.13
10:42
(20) предлагали уже )
22 Wobland
 
02.09.13
10:43
(18) +79140778656
23 AnKa4
 
02.09.13
10:47
(22) Мне нужна функция
24 Никола_
Питерский
 
02.09.13
10:51
(17) А ниче что там Выше есть уже кол-во объявлений автора ?
25 Никола_
Питерский
 
02.09.13
10:52
(24) + Причем там группировка по ID, а это значит что телефоны могут быть разные а автор один.
26 AnKa4
 
02.09.13
10:54
(24) Он формат только на днях поменяли. Эта фозможность только на днях появилось - раньше не было. Наша база накоплена уже - ей надо продолжать пользоваться.

По вопросу преобразования двоичных данных нашел ветку v8: Работа с двоичными данными.
27 AnKa4
 
03.09.13
02:44
Получилась такая функция

Функция ПолучитьРасшифровкуBase64(Шифр) Экспорт
    ДвоичныеДанные = Base64Значение(Шифр);
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    Чтение = Новый ЧтениеТекста(ИмяВременногоФайла, КодировкаТекста.UTF8);
    Строка = Чтение.ПрочитатьСтроку();
    Возврат Строка;
КонецФункции

Большое спасибо eRik и Кай066
28 Rie
 
03.09.13
03:39
(27) Зачем?
В (18) каждое число - код символа. Соответственно,

Номер = "";
Для Каждого код Из ДвоичныеДанные Цикл
    Номер = Номер+Символ(код);
КонецЦикла;

И никаких файлов.