Kodi-vStream / venom-xbmc-addons

Addon de Streaming français pour Xbmc
GNU General Public License v3.0
489 stars 275 forks source link

bloqué sur gestion captcha+cloudfare #716

Closed chataigne73 closed 7 years ago

chataigne73 commented 7 years ago

salut si un pro a un peu de temps pour m'aider je suis bloqué sur une nouvelle source pour gérer captcha et cloudfare en faisant des grosses bidouilles la récupération de l'image du captcha fonctionne, par contre pas moyen que la requete POST fonctionne :-(

comme tout n'est pas fonctionnel, voici un chemin pour tester : films/derniers films sd dvdrip et bdrip/choisir un film puis un hoster

merci pour votre aide

ghost commented 7 years ago

suis pas un pro mais pour une requete de type post tu doit le précisé je crois exemple: oRequestHandler.setRequestType(cRequestHandler.REQUEST_TYPE_POST)

chataigne73 commented 7 years ago

@johngf. Oui je le fais bien ça 'oRequestHandler = cRequestHandler(url) oRequestHandler.setRequestType(1)'

D'ailleurs ça marchait très bien pour ddl-island. Le pb vient certainement de la manière dont je construis mes paramètres de post data, ou alors des cookies car je mélange les pattes avec les cookies cloudfare

TmpName commented 7 years ago

Bon j'ai pas la solution, mais je pense a voir trouve le prb La partir Requesthandller gere les cookies SAUF si elle doit passer par la protection cloudflare, en fait elle utilise juste la fonction sContent = CloudflareBypass().GetHtml(self.__sUrl,e.read(),cookies) pour avoir le contenu de la nouvelle page, mais pas les nouveaux cookies (en fait il te manque par exmple le cookie phpsession). Donc 2 solutions. Soit tout faire sans Requesthandler, mais je crois que le prb c'est plutot cloudflare.py. Soit attendre la correction (qui risque de prendre quelques jours)

TmpName commented 7 years ago

C'est bon j'ai fait la correction. Now tu va avoir les bon cookies en fin de requetes. Par contre leur site m'a pas aime

et-Cookie: ban=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/ Set-Cookie: banni=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/ Set-Cookie: banni01=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/ Set-Cookie: ban-du-site=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=

Et j'ai pas eu le temps de tester.

chataigne73 commented 7 years ago

salut et merci pour les modifs je viens de tester, et même résultat ... la réponse à ma requete POST est la page initiale du captcha ... meêm pas la page captcha incorrect par exemple c'est comme ci ma requete POST n'était pas reconnue comme une requete POST cle cloudfare bypass permet il de transmettre une requete de type POST ???

chataigne73 commented 7 years ago

et je ne vois toujours pas le cookie phpsession sauvegardé ... j'ai mal vu ?

TmpName commented 7 years ago

Ha oui now que tu m y fait penser suis pas sur que ca marche pr des requetes POST. J'y jette un oeuil dans la soiree.

TmpName commented 7 years ago

Bon j'ai chnage mon fusil d'epaules, trop de modif juste pr un site, du ciup j'ai adapte ton code http://pastebin.com/J1jJZjzS

En fait tu es oblige d'avoir le cookie cloudflare pour avoir la page avec le captcha, du coup plus besoin de repasser par l'anticloudflare, suffit de repasser le cookie a la deuxieme requete.

Ca a l'air de marcher, mais j'ai peur que les cookies se cumule, je veux dire que au bout de 2/3 utilisation que certaines entree soient en double ou triple dedans.

chataigne73 commented 7 years ago

merci tout fonctionne, t'es un chef ! me reste plus qu'à bosser sur le site maintenant

ghost commented 7 years ago

bah comment fait on pour une request post si c'est possible ? ex pour la recherche sur un site avec .php ou on doit posté des postdata avec urllib.urlencode(post_data) mais le site a activé cloudflare j'ai pas trouvé la soluce

TmpName commented 7 years ago

C'etait exatement le prb de @chataigne73, regarde sa source, c'une requete post + cookie cloudflare + cookie du captcha. Normallement la fonction de Vstream peut gerer cloudflare en post depuis cette histoire.

Pour specifier POST

oRequestHandler.setRequestType(1)

ghost commented 7 years ago

Avant de posté j'avais deja essayé plusieurs methode y compris celle la peut etre je m'y suis mal pris apres pour le cookie j'ai remarqué que le cookie phpsession n'etait pas enregistré dans le fichier cookie du site seulement cfuid... et cf clearance... Le truc c'est que a la base la recherche est faite par urllib2 avec un headers , je n'ai pas réussi a le faire fonctionné par requesthandler Site films vostfr co

TmpName commented 7 years ago

Et mince, ca tombe bien la MAJ est pr bientot, je corrige cloudflare et je te dis ca apres.

TmpName commented 7 years ago

J'ai mit 3 fichiers a jours, ca devrait marcher, mais suis encore sur les tests la.

ghost commented 7 years ago

il manque juste a ajouté le cookie pour les thumbs j'avais ajouté ça SpecHead = CloudflareBypass().GetHeadercookie(sUrl) sThumbnail = aEntry[0] + SpecHead