Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2011, 00:50   #1
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию парсинг имен вконтакте

Код:
procedure ParsName(memo:tmemo);
var
bg,en:integer;
s:tstringlist;
st:string;
i:integer;
begin
  bg:=0;
  en:=bg;
  s:=tstringlist.Create();

  for I := 0 to memo.Lines.Count-1 do
  begin
    bg:=posex('"><b>',memo.Lines.Strings[i]);
    if bg<>0 then
    begin
    en:=posex('</b><br/>',memo.Lines.Strings[i]);
    st:=copy(memo.Lines.Strings[i],bg+5,en-bg-5);
    s.Add(st);
    end;
  end;

  s.SaveToFile('name.txt');
end;
вот собственно код. Но он работает некоректно. я авторизируюсь на мобильной версии вконтакте m.vkontakte.ru после етого перехожу на страницу сообщений и мне нужно отпарсить имена. Их на одной странице есть 10 у мя парсятса токо 6 и ещо 4 пустых строки. Кто может подсказать в чем проблема?
Pein95 вне форума Ответить с цитированием
Старый 06.12.2011, 00:10   #2
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

подскажыте хоть что нибудь) а то уже второй день над етим кодом сижу.
Pein95 вне форума Ответить с цитированием
Старый 06.12.2011, 02:40   #3
QunneD
C++ &amp;amp; PHP &amp;amp; Asm
Форумчанин
 
Аватар для QunneD
 
Регистрация: 06.12.2008
Сообщений: 300
По умолчанию

Цитата:
Подскажите, пожалуйста, хоть что-нибудь, а то уже второй день над этим кодом пыхчу.
Приведите HTML-код со страницы m.vkontakte.ru

Код:
s := TStringList.Create();
А освобождать не надо? Это суть проблемы не решает, но тем не менее, где?:

Код:
s.Free;
QunneD вне форума Ответить с цитированием
Старый 07.12.2011, 00:08   #4
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

сори за ошибки. Русский не мой родной язык. Я ним общаюсь только в сети.
Код:
 <div class='newMsg'>
      <a href="/letter3480?"><b>Наталья Галлямова</b><br/>
      <small>5 окт 2010 в 20:35</small><br/>
      Привет :)<br/>Все спасибо увидела)</a>
    </div>    <div class='newMsg'>
      <a href="/letter3290?"><b>Ярик Мельниченко</b><br/>
      <small>27 сен 2010 в 16:50</small><br/>
      я тоже)</a>
    </div>    <div class='newMsg'>
      <a href="/letter3136?"><b>Влада Лозюк</b><br/>
      <small>22 сен 2010 в 20:33</small><br/>
      привіт))Помало,може бути,дякую))</a>
    </div>    <div >
      <a href="/letter3108?"><b>Рокса Думич</b><br/>
      <small>21 сен 2010 в 14:26</small><br/>
      ага</a>
    </div>    <div >
      <a href="/letter2743?"><b>Александр Александров</b><br/>
      <small>31 авг 2010 в 12:39</small><br/>
      Привет я нащёт групи клуб фанатов клана учиха. можеш добавить одного чело...</a>
    </div>    <div >
      <a href="/letter2742?"><b>Константин Юрченко</b><br/>
      <small>31 авг 2010 в 12:38</small><br/>
      ну я понимаю.. но вопщем я всеравно ничем в этом вапросе памочь не магу.)...</a>
    </div>    <div >
      <a href="/letter675?"><b>Роман Магола</b><br/>
      <small>27 июн 2010 в 15:01</small><br/>
      немаю</a>
    </div>    <div class='newMsg'>
      <a href="/letter633?"><b>Володя Гнатів</b><br/>
      <small>15 июн 2010 в 22:32</small><br/>
      ааааа</a>
    </div>    <div class='newMsg'>
      <a href="/letter525?"><b>Володя ПеТРиК</b><br/>
      <small>26 апр 2010 в 22:03</small><br/>
      ку як там??</a>
    </div>    <div class='newMsg'>
      <a href="/letter429?"><b>Сергій Акінін</b><br/>
      <small>19 фев 2010 в 22:52</small><br/>
      спамер, йди спати вже)...</a>
    </div>
    </div>
Pein95 вне форума Ответить с цитированием
Старый 07.12.2011, 00:47   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
procedure ParsName(memo:tmemo);
var bg,en:integer;
    s:tstringlist;
    st:string;
    i:integer;
begin
  s:=TStringList.Create();
  for I := 0 to memo.Lines.Count-1 do
  begin
    bg:=PosEx('"><b>',memo.Lines.Strings[i]);
    if bg<>0 then
    begin
      en:=PosEx('</b><br/>',memo.Lines.Strings[i]);
      st:=copy(memo.Lines.Strings[i],bg+5,en-bg-5);
      s.Add(st);
    end;
  end;
  s.SaveToFile('e:\name.txt');
  s.Free;
end;
У вас там в именах функций и методов кирилица в наличии была. Вот результат

Наталья Галлямова
Ярик Мельниченко
Влада Лозюк
Рокса Думич
Александр Александров
Константин Юрченко
Роман Магола
Володя Гнатів
Володя ПеТРиК
Сергій Акінін
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.12.2011, 01:23   #6
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

не знаю как у вас... но у мя всеравно не работает.
У мя сам код компилилса... Но в файле небыло всех имен. были пустые строки
Pein95 вне форума Ответить с цитированием
Старый 07.12.2011, 01:39   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Единственно что можно сказать - в вашем Memo не тот HTML-код, что вы здесь показали.

ADD

Дошло. Поставте Memo.WordWrap:=False; Те строки, что переносятся рвутся и часть имен не находит. Кстати я вам еще раньше в другом посте про это говорил
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 07.12.2011 в 01:56.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой парсинг вконтакте Pein Общие вопросы Delphi 3 08.04.2011 17:41
парсинг друзей вконтакте SAMY93 Работа с сетью в Delphi 1 21.11.2010 23:51
Парсинг id Вконтакте Lemo Помощь студентам 1 16.07.2010 15:25