![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Делаю отправку новости на 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
|
|||
|
|||
|
Как я понял - это токен. Нужно сделать гет запрос на нужную страницу и оттуда его спарсить. Это просто.
Или я не так понял? |
|
#3
|
|||
|
|||
|
Ну сделал как то так, парсит то нормально, но почему то , не работает
![]() что делать? Код:
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
|
|||
|
|||
|
парс нормальное значение возвращает? Пробывал поработать с браузером, что он говорит?
|
|
#5
|
|||
|
|||
|
Цитата:
С браузером не работал,можно подробней? |
|
#6
|
|||
|
|||
|
составляешь запрос, вставляешь в адресную строку и смотришь что тебе возвращает сервер
|
|
#7
|
|||
|
|||
|
Цитата:
|
|
#8
|
|||
|
|||
|
допустим ты делаешь запрос в программе:
http.Get('http://%saitname%.ru/%params%'); Вот и все это дело вставь в адресную строку браузера и направь, смотри ответ с сервера. |
|
#9
|
|||
|
|||
|
Цитата:
типа такого? memo1.text:=idhttp1.get(site.text+'addnews.html',l ogindata); |
|
#10
|
|||
|
|||
|
Там все просто
Делаешь get на страницу. Циклом пробегаешься, удаляя не нужные инпуты Дебагером не могу пользоваться, юзаю form1.caption (если в потоке) или showmessage. Это для того, что бы выводить быть в курсе того, что программа делает в данный момент, например showmessage(token) Ну далее все понятно Последний раз редактировалось Zo_Omer, 10.08.2012 в 00:26. |
|
#11
|
|||
|
|||
|
сам лично сижу на шоу мессадж. Неудобно и удобно одновременно
|
|
#12
|
|||
|
|||
|
Цитата:
Как сделал я, токены парсит хорошо, все в порядке, только не пойму почему не отправляет. Вот еще вопрос. Я отправляю гет запрос , что бы спарсить значение, а потом пост, возможно значения меняются? и надо как то по другому? |
|
#13
|
|||
|
|||
|
Цитата:
Кинь исходник, гляну - попробую помочь |
|
#14
|
|||
|
|||
|
Цитата:
http://rghost.ru/39698738 вот исходник. Отправляет на сайты, но не на все, точнее из 4 попробованных только на 1 , и то на нем не надо было парсить значения |
|
#15
|
|||
|
|||
|
помогите пожалуйста
|