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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.08.2012, 22:03
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию Парсинг неизвестного значения

Делаю отправку новости на dle сайты, но проблема.
Но на большинстве сайтов нужно парсить значение.

Вот код:

Код:
var
LoginData, Response: TStrings;
str,s:string; n:integer;
begin
idhttp1.CookieManager:=idcookiemanager1;
LoginData := TStringList.Create;
Response := TStringList.Create;
try
LoginData.Add('title='+title.text);
LoginData.Add('catlist[]=3');
LoginData.Add('bbfont=0');
LoginData.Add('bbsize=0');
LoginData.Add('short_story='+brief.text);
LoginData.Add('full_story='+ful.Text);
LoginData.Add('tags=');
LoginData.Add('allow_comm=1');
LoginData.Add('allow_main=1');
LoginData.Add('approve=1');
LoginData.Add('allow_rating=1');
LoginData.Add('add=Отправить');
LoginData.Add('add=отправить');
LoginData.Add('mod=addnews');
Response.Text:=idhttp1.Post(site.text+'addnews.html',logindata);
Response.Text:=idhttp1.Post(site.text+'index.php?do=addnews',logindata);
except
end;
end;

вот примеры сайтов, на которых нужно парсить значение:
http://02-online.ru/
http://xtreme.ws/

логин YaModeratoR12
пароль YaModeratoR12

помогите пожалуйста
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #2  
Старый 09.08.2012, 01:23
Zo_Omer Zo_Omer вне форума
Прохожий
 
Регистрация: 31.01.2012
Сообщения: 33
Репутация: 10
По умолчанию

Как я понял - это токен. Нужно сделать гет запрос на нужную страницу и оттуда его спарсить. Это просто.

Или я не так понял?
Ответить с цитированием
  #3  
Старый 09.08.2012, 08:40
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

Ну сделал как то так, парсит то нормально, но почему то , не работает
что делать?

Код:
var
LoginData, Response: TStrings;
 str,s,stroka,hranilishe:string;n:integer;
begin
idhttp1.CookieManager:=idcookiemanager1;
LoginData := TStringList.Create;
Response := TStringList.Create;
try
//

str:=idhttp1.Get(site.Text+'addnews.html');
n:=pos('<input type="hidden" name="mod" value="addnews" />',str)+length('<input type="hidden" name="mod" value="addnews" />');
stroka:= copy(str,n,posex('/>',str,n)-n);
memo1.text:=copy(str,n,posex('/>',str,n)-n);

str:=stroka;
n:=pos('<input type="hidden" name="',str)+length('<input type="hidden" name="');
edit1.Text:= copy(str,n,posex('" value="',str,n)-n);

str:=memo1.text;
n:=pos('<input type="hidden" name="'+edit1.text+'" value="',str)+length('<input type="hidden" name="'+edit1.text+'" value="');
edit2.Text:= copy(str,n,posex('"',str,n)-n);

//
LoginData.Add('title='+title.text);
LoginData.Add('catlist[]=3');
LoginData.Add('bbfont=0');
LoginData.Add('bbsize=0');
LoginData.Add('short_story='+brief.text);
LoginData.Add('full_story='+ful.Text);
LoginData.Add('tags=');
LoginData.Add('allow_comm=1');
LoginData.Add('allow_main=1');
LoginData.Add('approve=1');
LoginData.Add('allow_rating=1');
LoginData.Add('add=Отправить');
LoginData.Add('add=îòïðàâèòü');
LoginData.Add('mod=addnews');
LoginData.Add(edit1.Text+'='+edit2.text);
Response.Text:=idhttp1.Post(site.text+'addnews.html',logindata);
Response.Text:=idhttp1.Post(site.text+'index.php?do=addnews',logindata);
except
end;
end;
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #4  
Старый 09.08.2012, 09:53
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

парс нормальное значение возвращает? Пробывал поработать с браузером, что он говорит?
Ответить с цитированием
  #5  
Старый 09.08.2012, 10:09
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

Цитата:
Сообщение от Кодер
парс нормальное значение возвращает? Пробывал поработать с браузером, что он говорит?
Да вроде нормальное...
С браузером не работал,можно подробней?
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #6  
Старый 09.08.2012, 12:01
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

составляешь запрос, вставляешь в адресную строку и смотришь что тебе возвращает сервер
Ответить с цитированием
  #7  
Старый 09.08.2012, 12:26
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

Цитата:
Сообщение от Кодер
составляешь запрос, вставляешь в адресную строку и смотришь что тебе возвращает сервер
немного не понял, что вставлять? запрос отправлять с помощью idhttp?
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #8  
Старый 09.08.2012, 17:45
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

допустим ты делаешь запрос в программе:
http.Get('http://%saitname%.ru/%params%');

Вот и все это дело вставь в адресную строку браузера и направь, смотри ответ с сервера.
Ответить с цитированием
  #9  
Старый 09.08.2012, 17:50
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

Цитата:
Сообщение от Кодер
допустим ты делаешь запрос в программе:
http.Get('http://%saitname%.ru/%params%');

Вот и все это дело вставь в адресную строку браузера и направь, смотри ответ с сервера.
Можешь подробней?
типа такого?
memo1.text:=idhttp1.get(site.text+'addnews.html',l ogindata);
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #10  
Старый 10.08.2012, 00:22
Zo_Omer Zo_Omer вне форума
Прохожий
 
Регистрация: 31.01.2012
Сообщения: 33
Репутация: 10
По умолчанию

Там все просто
Делаешь get на страницу.
Циклом пробегаешься, удаляя не нужные инпуты
Дебагером не могу пользоваться, юзаю form1.caption (если в потоке) или showmessage. Это для того, что бы выводить быть в курсе того, что программа делает в данный момент, например showmessage(token)
Ну далее все понятно

Последний раз редактировалось Zo_Omer, 10.08.2012 в 00:26.
Ответить с цитированием
  #11  
Старый 10.08.2012, 08:06
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

сам лично сижу на шоу мессадж. Неудобно и удобно одновременно
Ответить с цитированием
  #12  
Старый 10.08.2012, 08:50
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

Цитата:
Там все просто
Делаешь get на страницу.
Циклом пробегаешься, удаляя не нужные инпуты
Дебагером не могу пользоваться, юзаю form1.caption (если в потоке) или showmessage. Это для того, что бы выводить быть в курсе того, что программа делает в данный момент, например showmessage(token)
Ну далее все понятно
С циклами не связывался, не умею.
Как сделал я, токены парсит хорошо, все в порядке, только не пойму почему не отправляет.

Вот еще вопрос.
Я отправляю гет запрос , что бы спарсить значение, а потом пост, возможно значения меняются? и надо как то по другому?
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #13  
Старый 10.08.2012, 12:23
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Цитата:
С циклами не связывался, не умею.
А как ты написал функцию парсинга и вообще всё это, не имея даже базовых знаний?

Кинь исходник, гляну - попробую помочь
Ответить с цитированием
  #14  
Старый 10.08.2012, 16:15
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

Цитата:
Сообщение от Кодер
А как ты написал функцию парсинга и вообще всё это, не имея даже базовых знаний?
Ну просто не сталкивался с циклами, не были нужны...


http://rghost.ru/39698738 вот исходник.

Отправляет на сайты, но не на все, точнее из 4 попробованных только на 1 , и то на нем не надо было парсить значения
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #15  
Старый 12.08.2012, 18:18
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

помогите пожалуйста
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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