Лучший отвечающий
Форум ucoz в программе WPF

Вопрос
-
Здравствуйте. Подскажите, можно как нибудь программой получить сообщения с форума на ucoz или любом другом / написать ответ / зарегистрироваться?1 июня 2013 г. 15:50
Ответы
-
Ну с капчей не так сложно. Извлекаем из страницы тэг с ID "secImgForum" и из свойства scr этого тэга извлекаем ссылку на капчю и показываем пользователю в программе, пусть вводит.
Насчет html. Ну пока можно обойтись и без него. По сути если туда ввести просто текст, то получим текст без настроек и выделений.
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
- Предложено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 10 июня 2013 г. 11:57
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 11 июня 2013 г. 8:28
7 июня 2013 г. 5:20Отвечающий
Все ответы
-
Не большой по тексту вопрос охватывает с 10к тем.
1. Авторизация. Как то у меня даже был готовый код авторизации на uCoz, но потом он перестал работать, а обновлять мне и не нужно было.
2. Когда авторизация пройдена получаем возможность видеть все темы открытые пользователю и отвечать в них.
2.1. Как видеть? Первое что приходит в голову - получаем html главной страницы, а так сайты uCoz типизированы, то выявляем единую схему поиска разделов и ссылок на них. Для каждого раздела список тем и ссылок на них, для каждой темы количество страниц и ответы на странице.
2.2. Как писать ответы? Отправлять post-запрос, который предварительно надо сграбить, что бы знать его схему. Запрос отправляется по нужному url, который выявили в пункте 2.1
2 пункта и 2 подпункта каждый без должных знаний вызовет много вопросов и займет не мало времени.
Направление я вам задал, решить задачу реально. Начинайте решать и по возникающим проблемам задавайте вопросы.
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
1 июня 2013 г. 16:37Отвечающий -
Мдаа.. как все сложно :) Но это самый простой вариант, без него будет сложнее. Будем изучать. Для начала можно попросить помочь с авторизацией в этой теме? )) Или новый топик создать? Буду премного благодарен :)1 июня 2013 г. 19:02
-
Нужно запросом post или get отправить логин и пароль... как реализовать этот запрос?.. Вопросов, конечно, много будет...1 июня 2013 г. 19:11
-
У них запрос post.
Вот страница http://login.uid.me/?site=4fs-forum
Этот сайт будет для тестов ))
<!DOCTYPE HTML> <html> <head> <title>uID - глобальная система авторизации uCoz (ex uNet)</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://s000.uid.me/jsmin/u.js?v=6"></script><link type="text/css" rel="Stylesheet" href="http://s000.uid.me/css/unet.css"><link type="text/css" rel="stylesheet" href="http://s000.uid.me/css/uidlogin.css" /> </head> <body> <div><div style="float:right"><input type="button" id="lngs" hidefocus="hidefocus" style="width:100px"/><script type="text/javascript">new _uComboBox('combo','lngs',{onchange:function(i,v){window.location.href=window.location.href.replace(/&l=[a-z]{2}/ig,'')+'&l='+v;},readonly:1},1,[['bg','/img/_bg.gif',0,'Български'],['de','/img/_de.gif',0,'Deutsch'],['en','/img/_en.gif',0,'English'],['es','/img/_es.gif',0,'Español'],['hu','/img/_hu.gif',0,'Magyar'],['pl','/img/_pl.gif',0,'Polski'],['pt','/img/_pt.gif',0,'Português'],['ro','/img/_ro.gif',0,'Română'],['ru','/img/_ru.gif',1,'Русский']]);</script></div></div> <script type="text/javascript"> sendFrm11=function(){ var o=document.getElementById('blk11'); var pos=_uGetOffset(o); document.body.insertBefore(document.getElementById('blkD11'),document.body.firstChild); with(document.getElementById('blkD11')){style.top=(pos['top'])+'px';style.left=(pos['left'])+'px';style.width=o.offsetWidth+'px';style.height=o.offsetHeight+'px';style.display='';innerHTML='<div align="right" style="padding:5px 10px 0 0;"><div class="myWinLoad"></div></div>';} _uPostForm('frm11',{type:'POST',url:'/dolog/'}); } </script> <div id="blkD11" style=";z-index:11;background:url('http://s000.uid.me/img/grid.gif');display:none;"></div> <div id="wnd-wrap"> <div class="u-window window-auth"> <div id="centered" class="wnd-content"> <h3 class="wnd-title"><span>Вход через uID</span></h3> <div id="blk11"><form id="frm11" onsubmit="sendFrm11();return false;"> <input type="hidden" name="ajax" value="1"> <input type="hidden" name="goto" value="url"> <input type="hidden" name="url" value="http://login.uid.me/?site=4fs-forum&ref="> <div class="auth-info"> Авторизация на сайте <b>fs-forum.3dn.ru</b> через учетную запись <a target="_blank" href="http://www.uid.me">uID</a> </div> <div class="input-div"> <span class="input-title">E-mail</span> <input type="text" name="email" class="input-text" /> </div> <div class="input-div"> <span class="input-title">Пароль</span> <input type="password" name="pass" class="input-text" /> </div> <div class="submit-div"> <div class="secmode-div"><select name="secmode" size="1" onchange="uSetCookie({name:'uPriv',value:this.value,days:300,path:'/',domain:'.uid.me'});"><option value="0" >Чужой компьютер</option><option value="1" selected="selected">Личный компьютер</option></select></div> <input type="submit" class="input-btn" value="Войти" /> </div> </form></div> </div> </div> <div id="spacer"></div> </div> <div class="login-links"> <div class="wnd-separator"></div> <a target="_blank" href="http://www.uid.me/remind/" class="link-remind">Напомнить пароль</a> <a target="_blank" href="http://www.uid.me/register/" class="link-register">Регистрация</a> </div> <script type="text/javascript"> function centerHorz(id) { var el = document.getElementById(id); el.style.position = 'absolute'; el.style.top = '50%'; el.style.left = '50%'; el.style.marginLeft = -el.clientWidth/2 + 'px'; } function centerVert(id) { var el = document.getElementById(id); el.style.marginTop = -el.clientHeight/2 - 20 + 'px'; } centerHorz('centered'); centerVert('centered'); </script> <!-- <div class="poweredBy">uID.me © 2013</div><br/> --> </body> </html> <!-- 0.00161 -->
1 июня 2013 г. 19:21 -
Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MenuItem1.Click 'Параметры POST запроса. MsgBox(PostData("email=test&pass=test")) End Sub Public Function PostData(ByVal data As String) As String Dim request As HttpWebRequest = CType(HttpWebRequest.Create("http://login.uid.me/dolog/?site=4fs-forum"), HttpWebRequest) ' Сервер для подключения request.Method = "POST" request.ContentType = "application/x-www-form-urlencoded" request.KeepAlive = False request.ContentLength = data.Length Dim writer As New StreamWriter(request.GetRequestStream(), Text.Encoding.Default) writer.Write(data) writer.Close() Dim stream As Stream = request.GetResponse().GetResponseStream() Dim reader As New StreamReader(stream, Text.Encoding.Default) Dim response As String = reader.ReadToEnd Return response End Function
Вот! После такого отображает страницу пользователя... точнее ее исходный код. Что дальше делать? )- Изменено Siompc 1 июня 2013 г. 20:10
1 июня 2013 г. 20:03 -
Смотрите - как вы прошли за логин дальнейшие запросы для получения страниц можно делать GET, но при это передавать cookie сессии:
Сначала сохраняем его в глобальную переменную в вашем коде:
Dim sCookies As String = "" ... If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then sCookies = request.Headers("Set-Cookie") End If
А в последующих GET запросах перед GetResponseStream
If Not String.IsNullOrEmpty(sCookies) Then request.Headers.Add(Net.HttpRequestHeader.Cookie, sCookies) End If
Теперь вам будет возвращаться html страницы так как вы бы увидели ее после авторизации.
Шаг 2.
Получаем полный html заглавной страницы форумов и парсим. То есть нужно выявить ее структуру и понять внутри каких тэгов и клаcсов зашит заголовок и какая ссылка к нему относится.
В сайте что вы привели самая первая тема выглядит так:
<td class="forumNameTd"><a class="forum" href="http://fs-forum.3dn.ru/forum/5">Администрация ответит...</a> <div class="forumDescr">Любые вопросы по сайту или ботам.</div></td>
Если вы обратите внимание все заголовки находятся внутри тэга с классом "forumNameTd"
Я думаю нужно с помощью регулярных выражений выбрать все строчки отвечающие требованию и выдирать из них данные.
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
2 июня 2013 г. 5:06Отвечающий -
Так... Получилось нечто такое...
Dim myLogin As String = "test" Dim myPass As String = "test" Dim myUrl As String = "http://login.uid.me/" Dim myUrlSite As String = "http://fs-forum.3dn.ru/" Dim sCookies As String = "" Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MenuItem1.Click PostData() MsgBox(GetData) End Sub Public Function PostData() As String Dim myHttpWebRequest As HttpWebRequest Dim myHttpWebResponse As HttpWebResponse myHttpWebRequest = CType(HttpWebRequest.Create(myUrl & "dolog/?site=4fs-forum"), HttpWebRequest) myHttpWebRequest.Method = "POST" myHttpWebRequest.Referer = myUrl & "ref=http://fs-forum.3dn.ru/" myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1" myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3") myHttpWebRequest.ContentType = "application/x-www-form-urlencoded" If Not String.IsNullOrEmpty(sCookies) Then myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies) End If myHttpWebRequest.AllowAutoRedirect = False Dim sQueryString As String = "email=" & myLogin & "&pass=" & myPass Dim ByteArr As Byte() = Encoding.GetEncoding(1251).GetBytes(sQueryString) myHttpWebRequest.ContentLength = ByteArr.Length() myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length) myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse) Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8) sCookies = "" If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then sCookies = myHttpWebResponse.Headers("Set-Cookie") End If Return sCookies 'Авторизоавлись и получили куки... 'Теперь метод get... End Function Public Function GetData() As String Dim myHttpWebRequest As HttpWebRequest Dim myHttpWebResponse As HttpWebResponse myHttpWebRequest = CType(HttpWebRequest.Create(myUrlSite), HttpWebRequest) myHttpWebRequest.Method = "GET" myHttpWebRequest.Referer = "" myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1" myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3") If Not String.IsNullOrEmpty(sCookies) Then myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies) End If myHttpWebRequest.AllowAutoRedirect = False myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse) Dim myStreamReader1 As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8) myStreamReader1 = New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.GetEncoding(65001)) Dim txt As String = myHttpWebResponse.StatusCode & vbCrLf txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf txt += myStreamReader1.ReadToEnd Return txt End Function
Он авторизуется, но при использовании Get запроса страницы сайта с куками он выдает что все равно зашли как гость...
Еще такой вариант, может проще будет сделать по другому? Нужно просто получить ник, под которым зарегистрирован. А в программе будет ссылка на сам форум, точнее на страницу с комментариями материала. На это странице оставлять сообщения может даже гость. В программе можно их будет прочитать (только для этого материала) и оставить запись. Если надо, пусть заходят на сайт... :) Авторизация в этом случае все равно нужна... Ник высветится в Html, можно будет получить. Но пока что там гость ) Где тут ошибка?
2 июня 2013 г. 19:16 -
Продолжаю ковыряться.. Вот код
Dim myLogin As String = "test" Dim myPass As String = "test" Dim myUrl As String = "http://login.uid.me/" Dim myUrlSite As String = "http://fs-forum.3dn.ru/" Dim sCookies As String = "" Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MenuItem1.Click FileIO.FileSystem.WriteAllText("temps1.txt", PostData00, False) FileIO.FileSystem.WriteAllText("temps2.txt", PostData, False) FileIO.FileSystem.WriteAllText("temps3.txt", GetData, False) End Sub Public Function PostData00() As String Dim myHttpWebRequest As HttpWebRequest Dim myHttpWebResponse As HttpWebResponse myHttpWebRequest = CType(HttpWebRequest.Create("http://fs-forum.3dn.ru/"), HttpWebRequest) myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1" myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3") myHttpWebRequest.ContentType = "application/x-www-form-urlencoded" myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse) Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8) sCookies = "" If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then sCookies = myHttpWebResponse.Headers("Set-Cookie") End If Dim txt As String = myHttpWebResponse.StatusCode & vbCrLf txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf txt += myStreamReader.ReadToEnd Return txt 'получили куки... End Function Public Function PostData() As String Dim myHttpWebRequest As HttpWebRequest Dim myHttpWebResponse As HttpWebResponse myHttpWebRequest = CType(HttpWebRequest.Create(myUrl & "dolog/?site=4fs-forum"), HttpWebRequest) myHttpWebRequest.Method = "POST" myHttpWebRequest.Referer = "http://fs-forum.3dn.ru/" myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1" myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3") myHttpWebRequest.ContentType = "application/x-www-form-urlencoded" If Not String.IsNullOrEmpty(sCookies) Then myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies) End If myHttpWebRequest.AllowAutoRedirect = False Dim sQueryString As String = "email=" & myLogin & "&pass=" & myPass Dim ByteArr As Byte() = Encoding.GetEncoding(1251).GetBytes(sQueryString) myHttpWebRequest.ContentLength = ByteArr.Length() myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length) myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse) Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8) sCookies = "" If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then sCookies = myHttpWebResponse.Headers("Set-Cookie") End If Dim txt As String = myHttpWebResponse.StatusCode & vbCrLf txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf txt += myStreamReader.ReadToEnd Return txt 'Авторизоавлись и получили куки... 'Теперь метод get... End Function Public Function GetData() As String Dim myHttpWebRequest As HttpWebRequest Dim myHttpWebResponse As HttpWebResponse myHttpWebRequest = CType(HttpWebRequest.Create("http://fs-forum.3dn.ru/"), HttpWebRequest) myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1" myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3") myHttpWebRequest.ContentType = "application/x-www-form-urlencoded" If Not String.IsNullOrEmpty(sCookies) Then myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies) End If myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse) Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8) sCookies = "" If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then sCookies = myHttpWebResponse.Headers("Set-Cookie") End If Dim txt As String = myHttpWebResponse.StatusCode & vbCrLf txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf txt += myStreamReader.ReadToEnd Return txt End Function
Первый PostData00 получает куки с сайта. Потом с этими куками идет авторизовываться на сайт uid.me. Там он авторизуется и... все. Дальше все равно на сайте мы гость ))..
- Изменено Siompc 3 июня 2013 г. 8:54
3 июня 2013 г. 8:53 -
Как я и писал выше мой код перестал работать со вводом UID, но я не стал его переделывать, так как не было времени и надобности. Сейчас тоже не особо есть время вникать, но постараюсь чуть позже.
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
- Изменено LXGDARKEditor 4 июня 2013 г. 19:29
4 июня 2013 г. 11:31Отвечающий -
Нашел способ как авторизоваться по старинке :) Для этого на сайте должна быть старая форма входа. Вот код старой авторизации.
Dim myLogin As String = "---" Dim myPass As String = "---" Dim myUrl As String = "http://filestored.narod.ru/" Dim myUrlSite As String = "http://filestored.narod.ru/" Dim sCookies As String = "" Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MenuItem1.Click FileIO.FileSystem.WriteAllText("temps1.txt", PostData00, False) FileIO.FileSystem.WriteAllText("temps2.txt", PostData, False) End Sub Public Function PostData00() As String Dim myHttpWebRequest As HttpWebRequest Dim myHttpWebResponse As HttpWebResponse myHttpWebRequest = CType(HttpWebRequest.Create(myUrl & "index/sub/"), HttpWebRequest) myHttpWebRequest.Method = "POST" myHttpWebRequest.Referer = myUrl myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1" myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3") myHttpWebRequest.ContentType = "application/x-www-form-urlencoded" myHttpWebRequest.AllowAutoRedirect = False If Not String.IsNullOrEmpty(sCookies) Then myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies) End If Dim sQueryString As String = "user=" & myLogin & "&password=" & myPass & "&rem=1&a=2&ajax=1&rnd=" & CInt(Rnd() * 1000) & "&_tp_=xml" Dim ByteArr As Byte() = Encoding.GetEncoding(1251).GetBytes(sQueryString) myHttpWebRequest.ContentLength = ByteArr.Length() myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length) myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse) Dim myStreamReader = New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8) sCookies = "" If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then sCookies = myHttpWebResponse.Headers("Set-Cookie") End If Dim txt = myHttpWebResponse.StatusCode & vbCrLf txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf txt += myStreamReader.ReadToEnd Return txt 'Авторизоавлись и получили куки... 'Теперь метод get... End Function Public Function PostData() As String Dim myHttpWebRequest As HttpWebRequest Dim myHttpWebResponse As HttpWebResponse myHttpWebRequest = CType(HttpWebRequest.Create(myUrl), HttpWebRequest) myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1" myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3") myHttpWebRequest.ContentType = "application/x-www-form-urlencoded" If Not String.IsNullOrEmpty(sCookies) Then myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies) End If myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse) Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.UTF8) sCookies = "" If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then sCookies = myHttpWebResponse.Headers("Set-Cookie") End If Dim txt As String = myHttpWebResponse.StatusCode & vbCrLf txt += myHttpWebResponse.Headers.ToString & vbCrLf & vbCrLf & vbCrLf & vbCrLf txt += myStreamReader.ReadToEnd Return txt End Function
Первый запрос выдает следующее
200 Transfer-Encoding: chunked Connection: keep-alive Keep-Alive: timeout=15 Content-Type: text/xml; charset=UTF-8 Date: Wed, 05 Jun 2013 11:32:36 GMT Set-Cookie: ofilestoreduCoz=; path=/; expires=Mon, 06-Jun-2011 11:32:36 GMT; domain=.filestored.narod.ru;,ofilestoreduCoz=1nggl4q6nVwmsO1; path=/; expires=Sun, 04-Aug-2013 11:32:36 GMT; domain=.filestored.narod.ru;,ofilestoredEScom=; path=/; expires=Mon, 06-Jun-2011 11:32:36 GMT; domain=.filestored.narod.ru;,ofilestoreduz47=; path=/; expires=Mon, 06-Jun-2011 11:32:36 GMT;,ofilestoreduzll=1370431956; path=/; expires=Thu, 05-Jun-2014 11:32:36 GMT; domain=.filestored.narod.ru; Server: uServ/3.2.2 Cache-Control: no-cache,no-store Pragma: no-cache Vary: host <?xml version="1.0" encoding="UTF-8"?><ajax><cmd p="innerHTML" t="blk549706"><![CDATA[<div align="left" style="padding:10px;"><div class="myWinLoadSD"></div></div>]]></cmd><cmd p="js"><![CDATA[var ad=window.location.href.replace(/#(.*)?/,''); setTimeout("window.location.href='"+ad+"?lMA5hW'",'1000')]]></cmd></ajax>
Но в итоге мы остаемся гостем. Во втором запросе. Может подправить код? Или с ним все нормально?
5 июня 2013 г. 11:34 -
Ладно, с этим плоховато выходит... Тогда такой вопрос. Если без авторизации. Путь будет хотя бы так ))) Приложению дана ссылка на тему форума. Пользователь может оставить там сообщение, но как гость. Как получить сообщения со страницы и отправить туда его? Там стоит каптча. И сообщения представлены в виде html... что ни есть хорошо )) lxgdark, рассчитываю на твою помощь :)6 июня 2013 г. 19:58
-
Ну с капчей не так сложно. Извлекаем из страницы тэг с ID "secImgForum" и из свойства scr этого тэга извлекаем ссылку на капчю и показываем пользователю в программе, пусть вводит.
Насчет html. Ну пока можно обойтись и без него. По сути если туда ввести просто текст, то получим текст без настроек и выделений.
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
- Предложено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 10 июня 2013 г. 11:57
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 11 июня 2013 г. 8:28
7 июня 2013 г. 5:20Отвечающий -
Я отправил тестовое сообщение на сайт. Вот что получил:
Что бы имитировать это нужно отправить POST с телом следующего принципа - значение из таблицы слева=значение из таблицы справа и разделяем их знаком &
Пример: "jkd498=1&jkd428=1&user=lxgdark..." и так далее.
Но тут как раз и непонятки с этими jkd и прочими seckey, ssid, fid, tid. Что это? Откуда их брать? Понятно с user, понятно с message, понятно smile_on и code (это капча как раз). Все остальное не понятно...
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
7 июня 2013 г. 5:45Отвечающий -
Хмм.. большое спасибо! Еще момент.
Извлекать теги и значения со страниц каким способом лучше? Мне пока приходит в голову поиск индекса начала тега, потом от туда поиск значения... Но наверняка есть более упрощенный способ..
7 июня 2013 г. 14:25 -
Я чуть выше предлагал для этих целей использовать регулярные выражения. Если еще не знакомы с ними, то самое время познакомится.
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
7 июня 2013 г. 16:28Отвечающий -
Аааа кажется разобрался! Последний вопрос!!! Если неверно введены символы каптчи, можно как-то отобразить ошибку? Или это будет слишком сложно? :) Если сложно, тогда не нужно :)))
- Изменено Siompc 10 июня 2013 г. 14:28
9 июня 2013 г. 12:35