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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2013, 17:16   #1
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию Парсер ссылок в выдаче google

Получаю ссылки вот так:

Код:
procedure TForm8.sButton2Click(Sender: TObject);
begin
smemo1.Clear;
Source:= IdHTTP1.Get('http://www.google.com/search?q='+sedit1.text);
while Pos('<h3 class="r"><a href="', Source) <> 0 do begin
Delete(Source, 1, Pos('<h3 class="r"><a href="', Source) + Length('<h3 class="r"><a href="') - 1);
smemo1.lines.Add(Copy(Source, 1, Pos('"', Source) - 1));
end;
end;
Но парсится лишний мусор:

Код:
/url?q=http://www.whatismyip.com/&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CB0QFjAB&amp;usg=AFQjCNFIVE61-j2NqDisXMmCJUwuj2J19Q
/url?q=http://en.wikipedia.org/wiki/IP_address&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CCgQFjAC&amp;usg=AFQjCNFm1jLWHYF3PFtBMfHs_K08ZmfCdw
/url?q=http://en.wikipedia.org/wiki/Internet_Protocol&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CC4QFjAD&amp;usg=AFQjCNHdu3AplSecUAyKpUAtPIWnG0AvLA
/url?q=http://whatismyipaddress.com/&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CDQQFjAE&amp;usg=AFQjCNHfu_6hJNbkva5iuonucRR_H3aJ6Q
/url?q=http://www.ipaustralia.gov.au/&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CD4QFjAF&amp;usg=AFQjCNEaRB9hh-6FKxjRAXcKYzee2ZdwUQ
/url?q=http://www.ipchicken.com/&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CEQQFjAG&amp;usg=AFQjCNF6YKPdzS0raKR9G_GgI6WICHrQhw
/url?q=http://www.noip.com/&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CEoQFjAH&amp;usg=AFQjCNFABdZ102qdjJJrL0-dgUttRY0mmQ
/url?q=http://www.ip138.com/ips8.asp&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CFAQFjAI&amp;usg=AFQjCNFtMSdCGPXe9Ks7ReYTZ9uhNmUBLg
/url?q=http://www.webopedia.com/TERM/I/IP.html&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CFUQFjAJ&amp;usg=AFQjCNHxhxVfc3pvl4gPN5JI37XR5MpsIA
/url?q=http://www.whatsmyip.us/&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CFsQFjAK&amp;usg=AFQjCNFWHY9GwxSUPdDEkZZPZa00GyQ25Q
Как исправить?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 12.12.2013, 17:52   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

1. Это не лишний мусор. Так гугл защищает реальные ссылки от подобных, вашему, ботов.
2. Какой именно мусор вы имеете ввиду?
Человек_Борща вне форума Ответить с цитированием
Старый 12.12.2013, 18:17   #3
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
1. Это не лишний мусор. Так гугл защищает реальные ссылки от подобных, вашему, ботов.
2. Какой именно мусор вы имеете ввиду?
То что перед ссылкой:

Код:
/url?q=
И после ссылки:

Код:
/&amp;sa=U&amp;ei=
Можно как то после парсинга удалить все это?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 12.12.2013, 18:56   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Функция Pos и метод Delete.
Человек_Борща вне форума Ответить с цитированием
Старый 12.12.2013, 19:07   #5
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Функция Pos и метод Delete.
а можно пример?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 12.12.2013, 21:24   #6
Розетко
Пользователь
 
Аватар для Розетко
 
Регистрация: 05.12.2013
Сообщений: 21
По умолчанию

Еще как вариант
Код:
var
   parser: string;
begin
    parser := '/url?q=888-/url?q=890-/url?q=821';

    if Pos('/url?q=',parser) <> 0 then begin
      parser := StringReplace(parser, '/url?q=', #0,[rfReplaceAll, rfIgnoreCase]);
      ListBox1.Items.Add(parser);
    end;
end;
NНOGΔΛ MHΣ KΛЖΣTСЯ, 4TO MΣHЯ HΣ ПОНNМΛЮТ :[

Последний раз редактировалось Розетко; 12.12.2013 в 21:26.
Розетко вне форума Ответить с цитированием
Старый 12.12.2013, 21:44   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
s:='/url?q=http://www.whatsmyip.us/&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CFsQFjAK&amp;usg=AFQjCNFWHY9GwxSUPdDEkZZPZa00GyQ25Q'
i:=pos('?',s);
j:=pos('/&amp',s);
Ссылка:=copy(s,i,j-i);
Идея ясна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2013, 22:00   #8
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
s:='/url?q=http://www.whatsmyip.us/&amp;sa=U&amp;ei=w7apUtCaK-il4AT9i4GQDw&amp;ved=0CFsQFjAK&amp;usg=AFQjCNFWHY9GwxSUPdDEkZZPZa00GyQ25Q'
i:=pos('?',s);
j:=pos('/&amp',s);
Ссылка:=copy(s,i,j-i);
Идея ясна?
Нет. Можно подробней?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 13.12.2013, 00:37   #9
Розетко
Пользователь
 
Аватар для Розетко
 
Регистрация: 05.12.2013
Сообщений: 21
По умолчанию

Что непонятно то?

Функция Pos - возвращает индекс начала искомой строки. В вашем случае i:=pos('?',s) = 5 а j:=pos('/&amp',s) = 31. Функция Copy копирует из переменной s, текст с 5 символа по 30.
NНOGΔΛ MHΣ KΛЖΣTСЯ, 4TO MΣHЯ HΣ ПОНNМΛЮТ :[
Розетко вне форума Ответить с цитированием
Старый 13.12.2013, 16:08   #10
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

вроде решил проблему. Ну возникла другая, как удалить полностью строку в memo в которой содержится: "webcache.googleusercontent.com "
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсер ссылок HTML Lazio C# (си шарп) 4 14.09.2015 21:15
Перенос даты из формы Google в календарь Google. (Google Apps) katalnikov Фриланс 2 24.11.2012 22:42
Парсер ссылок в выдаче google dubailand Работа с сетью в Delphi 1 12.01.2012 00:08
Запрос дублирует записи при выдаче результатов hronos1975 Microsoft Office Access 2 25.05.2010 07:34
парсер (сбор ссылок с сайта) AlexMenco Фриланс 9 24.02.2009 19:39