Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.04.2015, 23:08
Devilscream Devilscream вне форума
Прохожий
 
Регистрация: 10.04.2015
Сообщения: 1
Версия Delphi: Delphi 72
Репутация: 10
По умолчанию Авторизация и парс на Яндекс ру. ну тема не сложная же а?

Народ ну хелп ми а ?
Как сделать авторизация на яндексе и скопировать уже с авторизованного ака (со страницы яндекс ру) один всего 1 символ?

А теперь конкретней.
1 авторизуемся на яндекс ру.
2 Со страницы Яндекс ру находим искомое слово (уже сделал).
3 Парсим и выводи в лейбл (тоже есть).


Народ ну вот код парса (ниже) , (на форме Батон,лейбл и TIdHTTP)
А как теперь сделать авторизацию? и дальнейший парс ?

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
unit Unit1;
  
interface
  
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls,ComObj,ExcelXP, ActiveX, Grids, OleServer, Excel2000,
  IdMessageClient, IdSMTP;
  
type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    IdHTTP1: TIdHTTP;
    Button3: TButton;
    ExcelApplication1: TExcelApplication;
    IdSMTP1: TIdSMTP;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  
       
  private
    { Private declarations }
  public
    { Public declarations }
     vExcel: Variant;
  end;
  
var
  Form1: TForm1;
  i:integer;
  
  
  
implementation
  
{$R *.dfm}
  
  
  function Pars(T_, ForS, _T: string): string;
var
  a, b: integer;
begin
  Result := '';
  if (T_ = '') or (ForS = '') or (_T = '') then
    Exit;
  a := Pos(T_, ForS);
  if a = 0 then
    Exit
  else
    a := a + Length(T_);
  ForS := Copy(ForS, a, Length(ForS) - a + 1);
  b := Pos(_T, ForS);
  if b > 0 then
    Result := Copy(ForS, 1, b - 1);
end;
  
procedure TForm1.Button1Click(Sender: TObject);
  
var
 Source, Source_forum:TstringList;
Begin
  
  
  Source:=TStringList.Create;
  Source.Text:=IdHTTP1.Get('http://www.yandex.ru/');
  label1.caption:=Utf8ToAnsi (WideString(label1.caption));
    Source.Text:=Utf8ToAnsi (WideString( Source.Text));
  
  label1.caption:=label1.caption+Pars('<a href="//maps.yandex.ru/traffic" class="b-link_black_novisit">',Source.Text,'</a>');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
   vExcel:=CreateOleObject('Excel.Application');
   vExcel.Visible:=false;
  
      end;
end.
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 11.04.2015 в 11:05.
Ответить с цитированием
  #2  
Старый 11.04.2015, 11:16
CynicRus CynicRus вне форума
Прохожий
 
Регистрация: 26.02.2013
Сообщения: 30
Версия Delphi: Lazarus, XE 3.
Репутация: 10
По умолчанию

Берёшь HTTP сниффер, смотришь им как авторизуется бразуер, повторяешь это в своём коде, Proffit!
Ответить с цитированием
  #3  
Старый 11.04.2015, 11:42
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,554
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

И не забываем подставлять куки и рефереры
Ответить с цитированием
  #4  
Старый 12.04.2015, 11:37
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function TYandexJobThread.Login: String;
var
  s: String;
  i: Integer;
begin
  Result:='';
  (* auth *)
  s:='';
  s:=s+'&from=passport';
  s:=s+'&display=page';
  s:=s+'&login='+StrToHex(ALogin);
  s:=s+'&passwd='+StrToHex(APass);
  s:=DoRequestHttps('POST', 'passport.yandex.ru', '/passport?mode=auth&twoweeks=yes', '', s);
  i:=Pos('Passport.idkey', s);
  if i=0 then raise Exception.Create('!Passport.idkey');
  s:=Trim(Copy(s, i+14, Length(s)));
  if s[1]<>'=' then raise Exception.Create('!Passport.idkey');
  s:=Trim(Copy(s, 2, Length(s)));
  i:=Pos(';', s);
  if i=0 then raise Exception.Create('!Passport.idkey');
  s:=Trim(Copy(s, 1, i-1));
  if s<>'''''' then raise Exception.Create('!auth');
end;
100% рабочий код
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025