BorderGame
Ask Bot - Versione stampabile

+- BorderGame (https://www.bordergame.it)
+-- Forum: Programmazione (/Forum-Programmazione--158)
+--- Forum: Programmazione (/Forum-Programmazione)
+---- Forum: Visual Basic & .NET (/Forum-Visual-Basic-NET)
+---- Discussione: Ask Bot (/Thread-Ask-Bot)



Ask Bot - CarlKox - 15-08-2013 10:12 AM

Ormai mi conoscete tutti perchè sono sempre in paranoia e cerco di fare cose, utilizzando un termine sinonimo, peneose
Oggi pero voglio rendere un mio progetto open source (o meglio, cerco dei collaboratori con i quali decideremo insieme le modifiche da applicare al progetto), questo è proprio un bot per fare domande su ask.. il progetto è a buon punto mancano solo dei piccoli cicli che i miei studi da internet non mi fanno procedere avanti..e poi sono dall'idea che chi va da solo non fa mai veramente qualcosa di geniale.
Non ci sono bug (perchè l'ho testato molte volte) fino a questo punto tranne quei piccoli cicli da aggiungere per renderlo una macchina da guerra..

il progetto era iniziato per 2 motivi basilari:
1. Mi piace rompere le scatole
2. Ask mi ha rotto l'askafala Big Grin

Il progetto quando l'ho creato non sapendo che nome dare l'ho chiamato ABK (Ask Bot by Koxy) anche se a metà progetto ho trovato un nome molto più figo che pero ancora non ho cambiato, il nome in questione e visto che puo andare sul volgare lo metto sotto spoiler per quelle persone sensibili
Spoiler:
Askassammuaminchia (In siciliano ma credo si capisca lo stesso il significato)

Per chi è interessato al progetto mi mandi un mp..
NB.
1.Il progetto è in vb6 (la pena, vero?)
2.Avevo testato il webkitbrowser (il browser di google in vb, ma servendomi alcune funzioni ho dovuto usare per forza di cose il classico webbrowser come un noob aspetto)
3.Come ben sapete ask ha quei maledetti captcha che si attivano (da utente non registrato) ogni 11 domande circa, quindi uno dei veri problemi è il rilevamento dell'apparizione del captcha, quindi ho pensato a 2 opzioni: o lo si evita imponendo al programma di aspettare un tot secondi (ma riapparira subito dopo 3-4 domande) o una possibile integrazione ocr per la lettura dei caratteri e la scrittura di quest'ultimi nella *tb*

Se ci sono domande, dubbi, o qualsiasi domanda sul programma sono libero di rispondere.


RE: Ask Bot - тυттσмαχ - 16-08-2013 10:42 AM

1) vb6 fai sul serio?
2) webbrowser fai sul serio?

[vb.net]
usa webclient per ottenere source e regex per splittarlo
usa httpwebrequest e response per inviare dati al sito ask (es. inviare il captcha o un messaggio)

comunque inviami il source così do un'occhiata


RE: Ask Bot - CarlKox - 16-08-2013 12:59 PM

anche in vb6 ci sono comandi che ti permettono di importare il documento (ma devi utilizzare comunque il browser) ora ti mando il progetto

edit.
mandato link dropbox


RE: Ask Bot - тυттσмαχ - 16-08-2013 02:12 PM

===========================


RE: Ask Bot - Nico - 16-08-2013 02:30 PM

Puoi spiegarmi lo scopo preciso ? :| E' un bot che deve spammarlo su ask, o deve solo fare domande comuni ma dal desktop ? :|


RE: Ask Bot - CarlKox - 16-08-2013 02:43 PM

@[☞ ~SilverNik] In pratica dovrebbe essere uno spammer di domande

@[тυттσмαχ] Nel link hai anche un paio di domande, te le ho aggiunte in cartella


RE: Ask Bot - тυттσмαχ - 16-08-2013 03:19 PM

sto provando con httpwebrequest ma mi da questa pagina quando invia :
İmage

questo è il codice

Codice PHP:
Private Function GetToken() As String
        Dim Token 
As String String.Empty
        
Using Web As New WebClient
            Dim source 
As String Web.DownloadString(String.Format("http://ask.fm/AlessandroAfo"))
            
Dim Regex As New Regex("(?=var AUTH_TOKEN).*")
            
Token Regex.Matches(source)(0).Value.Replace("var AUTH_TOKEN = """"").Replace(""";""")
        
End Using
        
Return Token
    End 
Function

    Private Function 
Domanda(ByVal qustion As String) As String
        Dim token 
As String GetToken()
        If 
String.IsNullOrEmpty(tokenThen Throw New Exception("Token vuoto")
        
Dim data As String String.Format("authenticity_token={0}&question%5Bquestion_text%5D={1}%3F&question%5Bforce_anonymous%5D=&authenticity_token={0}"tokenqustion)
        
Dim bytes() As Byte = New UTF8Encoding().GetBytes(data)

        
Dim Request As HttpWebRequest DirectCast(HttpWebRequest.Create("http://ask.fm/AlessandroAfo/questions/create"), HttpWebRequest)
        
Request.KeepAlive True
        Request
.Method "POST"
        
Request.ContentType "application/x-www-form-urlencoded"
        
Request.Referer "http://ask.fm/AlessandroAfo"
        
Request.UserAgent "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"

        
Request.Headers.Add("Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3")
        
Request.Host "ask.fm"

        
Request.ContentLength bytes.Length

        Using 
[Stream] As Stream Request.GetRequestStream
            
[Stream].Write(bytes0bytes.Length)
        
End Using

        Using Response 
As HttpWebResponse Request.GetResponse
            Using Stream 
As Stream Response.GetResponseStream
                Using Reader 
As New StreamReader(Stream)
                    Return 
Reader.ReadToEnd
                End Using
            End Using
        End Using

    End 
Function 



RE: Ask Bot - CarlKox - 16-08-2013 04:20 PM

(16-08-2013 03:19 PM)тυттσмαχ Ha scritto:  sto provando con httpwebrequest ma mi da questa pagina quando invia :
İmage

questo è il codice
Spoiler:
Codice PHP:
Private Function GetToken() As String
        Dim Token 
As String String.Empty
        
Using Web As New WebClient
            Dim source 
As String Web.DownloadString(String.Format("http://ask.fm/AlessandroAfo"))
            
Dim Regex As New Regex("(?=var AUTH_TOKEN).*")
            
Token Regex.Matches(source)(0).Value.Replace("var AUTH_TOKEN = """"").Replace(""";""")
        
End Using
        
Return Token
    End 
Function

    Private Function 
Domanda(ByVal qustion As String) As String
        Dim token 
As String GetToken()
        If 
String.IsNullOrEmpty(tokenThen Throw New Exception("Token vuoto")
        
Dim data As String String.Format("authenticity_token={0}&question%5Bquestion_text%5D={1}%3F&question%5Bforce_anonymous%5D=&authenticity_token={0}"tokenqustion)
        
Dim bytes() As Byte = New UTF8Encoding().GetBytes(data)

        
Dim Request As HttpWebRequest DirectCast(HttpWebRequest.Create("http://ask.fm/AlessandroAfo/questions/create"), HttpWebRequest)
        
Request.KeepAlive True
        Request
.Method "POST"
        
Request.ContentType "application/x-www-form-urlencoded"
        
Request.Referer "http://ask.fm/AlessandroAfo"
        
Request.UserAgent "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"

        
Request.Headers.Add("Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3")
        
Request.Host "ask.fm"

        
Request.ContentLength bytes.Length

        Using 
[Stream] As Stream Request.GetRequestStream
            
[Stream].Write(bytes0bytes.Length)
        
End Using

        Using Response 
As HttpWebResponse Request.GetResponse
            Using Stream 
As Stream Response.GetResponseStream
                Using Reader 
As New StreamReader(Stream)
                    Return 
Reader.ReadToEnd
                End Using
            End Using
        End Using

    End 
Function 

Ma sempre sullo stesso progetto? se si:
Hai messo nella tb l'indirizzo web della pagina che devi "bersagliare"?
o comunque non so cosa tu stia facendo perchè non conosco il codice httpwebrequest perchè da cio che ho potuto studiare online questo lo sconosco come anche i metodi per bypassare il captcha (anche se pensavo di farlo proxare continuamente cosi ask vedendo sempre un nuovo ip non avrebbe mai chiesto il captcha + una maggiore sicurezza nel rompere le scatole a qualcuno (anche se poi ho paura che possa esser venuto usato male perchè potrebbero compilare una lista di insulti e mandarli, e questo D: non lo vorrei proprio ))

@[тυттσмαχ]

ps. A progetto avviato sicuramente hai visto che mancava un "label1000" era una label testing che avevo cancellato prima di passarvelo (ma è soltanto in una riga)


RE: Ask Bot - тυттσмαχ - 16-08-2013 06:04 PM

no ho creato un nuovo progetto
non so perchè non funziona


RE: Ask Bot - CarlKox - 17-08-2013 01:38 AM

(16-08-2013 06:04 PM)тυттσмαχ Ha scritto:  no ho creato un nuovo progetto
non so perchè non funziona

il mio si, è fatto da un noob ma funge XD devo evitare solo il captcha e sistemare altre 2 cagate e poi è perfetto, almeno credo

comunque, credo, che quella pagina appaia di solito quando internet non funziona bene e non riesce a caricare il tutto bene (in poche parole è come se non abbia caricato i file css, no?)


RE: Ask Bot - тυттσмαχ - 17-08-2013 10:14 AM

non centra il caricamento della pagina
non invia la domanda sto chiedendo un po in giro
ora provo inserendo i cookie magari è quell0(ma ne dubito)

___________________________________________-

@CarlKox come cavolo si tagga?
ci sono riuscito Smile
İmage


impiega 1.5 sec per inviare una domanda


Codice PHP:
Private Function GetToken() As String
        Dim Token 
As String String.Empty
        
Using Web As New WebClient
            Dim source 
As String Web.DownloadString(String.Format("http://ask.fm/AlessandroAfo"Name))
            
Dim Regex As New Regex("(?=var AUTH_TOKEN).*")
            
Token Regex.Matches(source)(0).Value.Replace("var AUTH_TOKEN = """"").Replace(""";""")
        
End Using
        
Return Token
    End 
Function
   Private Function 
Domanda(ByVal qustion As String) As String
       
        Dim token 
As String GetToken()
        If 
String.IsNullOrEmpty(tokenThen Throw New Exception("Token vuoto")

        
Dim data As String String.Format("authenticity_token={0}&question%5Bquestion_text%5D={1}%3F&question%5Bforce_anonymous%5D=&authenticity_token={0}"tokenqustion)
        
Dim bytes() As Byte = New UTF8Encoding().GetBytes(data)

        
Dim Request As HttpWebRequest HttpWebRequest.Create("http://ask.fm/AlessandroAfo/questions/create")
        
Request.UserAgent "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
        
Request.Headers("Accept-Language") = "it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3"
        
Request.AllowAutoRedirect True
        Request
.ContentLength bytes.Length
        Request
.Referer "http://ask.fm/AlessandroAfo"
        
Request.KeepAlive True
        Request
.Method "POST"

        
Using Post As Stream Request.GetRequestStream
            Post
.Write(bytes0bytes.Length)
        
End Using

        Using Response 
As HttpWebResponse Request.GetResponse
            Using HttpStream 
As Stream Response.GetResponseStream
                Using Reader 
As New StreamReader(HttpStream)
                  Return 
Reader.ReadToEnd
                End Using
            End Using
        End Using
    End 
Function 



RE: Ask Bot - CarlKox - 17-08-2013 11:47 AM

e il captcha cosi lo eviti? dopo 10-13 domande ti appare

@[тυттσмαχ]


RE: Ask Bot - тυттσмαχ - 17-08-2013 01:01 PM

nessun captcha è bypassabile
l'unico modo è inserire un beep quando appare il captcha e farlo inserire manualmente


RE: Ask Bot - CarlKox - 17-08-2013 01:17 PM

(17-08-2013 01:01 PM)тυттσмαχ Ha scritto:  nessun captcha è bypassabile
l'unico modo è inserire un beep quando appare il captcha e farlo inserire manualmente

con questo tuo sistema riesci ad evitare il captcha oppure comunque sia rompe le scatole?


RE: Ask Bot - тυттσмαχ - 17-08-2013 03:54 PM

credo che c'è sempre il captcha prova
---edit

devi per forza usare un OCR o MODI(microsft office document image )


RE: Ask Bot - CarlKox - 18-08-2013 02:08 AM

(17-08-2013 03:54 PM)тυттσмαχ Ha scritto:  credo che c'è sempre il captcha prova
---edit

devi per forza usare un OCR o MODI(microsft office document image )

quindi per ora posso lasciare il tutto in vb6 e devo trovare il modo di evitare sto problema del captcha, dimmi una cosa, se io faccio proxare ad ogni domanda l'utente, il captcha dovrebbe essere sempre evitato, perchè cambiando ip ask crederà (perchè i computer è risaputo pensano) che sia un altra persona e quindi non dovrebbe chiedere il captcha...
logicamente è giusto, e in pratica? è una cosa fattibile @[тυттσмαχ]?


RE: Ask Bot - тυттσмαχ - 18-08-2013 09:44 AM

certo che è fattibile ogni 11 domande cambi proxy


RE: Ask Bot - CarlKox - 19-08-2013 09:39 AM

(18-08-2013 09:44 AM)тυттσмαχ Ha scritto:  certo che è fattibile ogni 11 domande cambi proxy

e come posso fare per implementare i proxy? io non ne ho la piu pallida idea, avevo provato con quei siti che da online stesso ti cambiano l'ip ma facendo cio non so perchè la domanda non veniva effettuata


RE: Ask Bot - тυттσмαχ - 19-08-2013 10:00 AM

devi inserire un proxy nel request così
Request.proxy(new webproxy("ip","porta")