Annonce

Réduire
Aucune annonce.

Un ajouteur de vue en python ! Débutant

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Un ajouteur de vue en python ! Débutant

    Bonjour à tous ! Comme vous pouvez le constatez, je suis nouveau sur le forum et j'ai décidé de post mon premier programme sérieux : un views adder (ajouteur de vues ?) en python 3

    En gros, j'aimerais savoir ce que vous en pensez et si vous avez des suggestions pour me simplifier la vie je suis très très très (très ? ) ouvert .

    Voici le code de base ( Il supporte un seul proxy donc c'était juste pour me faire la mains avec la librairie request)

    Le principe pour que le code fonctionne est que l'utilisateur donne une liste de proxies dans le même dossier que le script et ensuite éxécute ce dernier( entre le URL et d'autres infos) qui va regarder la page web le nombre de fois que l'utilisateur désirait et à la fréquence que celui-ci désirait pour donner des views

    J'imagine que contrairement à moi hier () Vous savez importer vos librairies et vous avez besoin de requests :
    http://docs.python-requests.org/en/latest/

    Sinon, je serai ravi de vous montrer comment car c'est l'une des rares questions auxquelles je peux répondre en programmation ( encore )


    Code:
    import webbrowser    # Import statements
    import time
    import os
    import requests
    
    print  ('''
    .  .                    .  .           .   .
    \  /* _ .    , __   _. _| _| _ ._.   _.|._ |_  _.
     \/ |(/, \/\/ _)   (_](_](_](/,[    (_]|[_)[ )(_]
                                            |
    made by nalfein
               ''')
    
    
    
    def open_webpage():             # main function, kill the browser and open a new one at the specified url
       r = requests.get(url,proxies={'http':' ip:port'})
       time.sleep(refresh)                       # Refresh rate
    
    def verify_int(user_input):             # It's the function that verify if the input of the user is a number
        try:
            user_input = int(user_input)
            return True
        except ValueError:                  # If the user does not enter a number
            print ('This is not a valid input please retry ')
    
    
    url = input("Enter your url: ")              # Specify the url
    ip = input('Type the ip addres of the proxy ')
    port = input('Type the port of the proxy ')
    
    
    while True:
     number_of_views = input ('How many views do you want ? : ')    # specify the number of views the user wants
     if verify_int(number_of_views):
         number_of_views = int(number_of_views)    # Transform the str in a int
         break
    
    while True:
        refresh = input("Enter refresh rate(seconds) : ")          # specify the refresh rate (open and close) of the browser
        if verify_int(refresh):
            refresh = float(refresh)     # transform the
            break
    
    
    for i in range(number_of_views) :
        open_webpage()
        print('')
    Sinon lien pastebin si vous préférez :http://pastebin.com/2HYZLEHA

    Voici le code que je voudrais prendre pour pouvoir utiliser une liste de proxy :


    Code:
    import requests
    import time
     
    url = input('enter the url ')
    proxies = open('proxies.txt','r')
     
     
     
    r = requests.get(url,proxies={'http':'http://i'})
     
     
    proxies = open('proxies.txt','r')
     
    a=1
     
    for i in proxies:
        a+=1
        r = requests.get(url,proxies={'http':'http://i'})
        print ('page visited')
        print (a)
        time.sleep(2)
    Et encore le lien du bon vieux pastebin : http://pastebin.com/tM8zvvj8
    Mais j'ai l'erreur suivante sur la plupart des sites ...:

    requests.exceptions.ConnectionError: HTTPConnectionPool(host='i', port=80): Max retries exceeded with url: http://pastebin.com/aUF99ypS (Caused by ProxyError('Cannot connect to proxy.', gaierror(11004, 'getaddrinfo failed')))

    Finalement désolé pour les erreurs de frappe qui on pu se glisser dans le code et/ou dans le texte : J'était sur ma tablette quand j'ai écris ce message et le foutu autocorrecteur faisait des siennes. Je vais utiliser mon PC la prochaine fois...

    Bonne journée (ou soirée dans mon cas)

    Nalfein

  • #2
    En général l'erreur getaddrinfo failed, veut dire qu'il ne trouve pas l'IP associée à ton adresse, donc en gros il faut connaître sa véritable adresse...

    Commentaire


    • #3
      Merci beaucoup pour le partage de ton script !

      Je suis peut être un peu bouché mais je ne comprends pas très bien son but en fait (mais je n'ai pas encore pris le temps de le tester non plus).
      Celui-ci est il d'afficher la page Web un certain nombre de fois dans une fenêtre ? Ou bien simplement d'en récupérer le code source (et dans ce cas là, dans quel but)?

      Commentaire


      • #4
        Sympas ton programme.

        Non Anonyme c'est juste pour ajouter des vues à une page. on passe par un proxy pour changer l'IP et add +1 vue à chaque tour de rein.
        Pour contourner le soucis d'erreur une exception avec try pour encadrer le proxy permettrais de relancer le script au lieu de s'arrêter car souvent les proxy publics sont défaillants et se déconnecte sans cesse. Le truc serais qu'en cas de deco du proxy il passe au suivant sans générer d'erreur ce qui compenserais la perte de temps en relance script.

        Si tu l'a tester ce serais cool de faire voir des screens.

        Merci du partage.
        Dernière modification par DreAmuS, 29 juillet 2015, 12h41. Motif: orthographe

        Commentaire


        • #5
          Code:
          r = requests.get(url,proxies={'http':'http://i'})
          Ça risque pas de fonctionner, essaies

          Code:
          r = requests.get(url,proxies={'http':'http://{}'.format(i)})

          Commentaire


          • #6
            Merci de vos réponses ! Je vous donne le nouveau code dans environ 4h (pas chez moi)

            Commentaire


            • #7
              nouveau code

              Finalement, voici le nouveau code fait selon vos recommandations:

              Code:
              import webbrowser    # Import statements
              import time
              import os
              import requests
              
              print  ('''
              .  .                    .  .           .   .
              \  /* _ .    , __   _. _| _| _ ._.   _.|._ |_  _.
               \/ |(/, \/\/ _)   (_](_](_](/,[    (_]|[_)[ )(_]
                                                      |
              made by nalf3in
                         ''')
              
              
              
              def open_webpage(number_of_the_visit,number_of_views_wanted,refresh):        # main function, access a webpage
                  for temporary_proxie in proxies:
              
                   if number_of_the_visit <= number_of_views_wanted:
                    print ('Number of the visit: ', number_of_the_visit)
                    number_of_the_visit +=1
                    try:
                       r = requests.get(url,proxies={'http':'http://{}'.format(temporary_proxie)})
                       print ('page visited')
                       print('')
                       time.sleep(refresh)
              
                    except:
                       print ('error, page not visited...')
                       time.sleep(refresh)
                       print('')
                       continue
                   else:
                        break
              def verify_int(user_input):             # It's the function that verify if the input of the user is a number
                  try:
                      user_input = int(user_input)
                      return True
                  except ValueError:                  # If the user does not enter a number
                      print('')
                      print ('This is not a valid input please retry ')
              
              proxies = open('proxies.txt','r')     # open the proxy list
              number_of_the_visit = 1               # set the number of the visit to 0
              url = input("Enter your url: ")       # Specify the url
              
              
              
              
              while True:
               number_of_views = input ('How many views do you want ? : ')    # specify the number of views the user want with error handling from verify_int()
               if verify_int(number_of_views):
                   number_of_views = int(number_of_views)    # Transform the str in a int
                   break
              
              while True:
                  refresh = input("Enter refresh rate(seconds) : ")          # specify the refresh rate of the request
                  if verify_int(refresh):
                      refresh = float(refresh)     # transform the refresh rate with float()
                      break
              
              
              
              open_webpage(number_of_the_visit,number_of_views,refresh)
              
              print ('Finished !')
              sinon pastebin : http://pastebin.com/uCUZBUBL
              pastebin du code non-complet (Pour tester les erreurs) : http://pastebin.com/EhX9BA6p


              Il marche parfois mais pas souvent et disons que je ne sais plus vraiment pourquoi ...
              Le site sur lequel il fonctionne tout le temps est sur une page de recherche google .... snipe2.jpg

              J'ai réussi à trouver un outil sur internet pour vérifier si un proxy est blocké sur un site web (ou non) et dans ce cas j'ai généralement la nouvelle erreur suivante et ce peu importe le proxy que j'utilise: requests.packages.urllib3.exceptions.LocationParseError: Failed to parse: 152.26.69.38:8080
              snipe3.jpg

              De plus le script ne fonctionne pas sur youtube (normal car il faut que la vidéo commence pour que ça compte pour une vue)


              Serait-ce mieux d'utiliser un autre module que requests ?

              Finalement merci (encore) beaucoup de votre aide
              Fichiers attachés

              Commentaire


              • #8
                J'oubliais, le pastebin de l'erreur (je testait avec une ancienne version qui générait d'autre code d'erreurs en plus mais présentement c'est la seule qui arrive )

                Lorsqu'un site pourtant non-blocké ne fonctionne pas: http://pastebin.com/PrCQvX3h
                Dernière modification par nalfein, 30 juillet 2015, 05h06.

                Commentaire


                • #9
                  Ça semble être une erreur connue, avec un patch, mais je te laisse le soin de lire tout ça !

                  Commentaire


                  • #10
                    Super merci beaucoup, j'avais déjà vu ce post mais je savais pas que c'était mon problème .. Et je ne savais pas comment l'appliquer et je ne le sais pas plus maintenant.. (oui je sais c'est probablement une question stupide mais je ne sais quand même pas la réponse) D'ailleurs je n'utilise pas de socks non ?
                    Dernière modification par nalfein, 30 juillet 2015, 18h39.

                    Commentaire


                    • #11
                      Eh bien, as-tu suivi la documentation au complet ? Apparemment il est impossible pour lui d'analyser ce type d'URL... As-tu setter tes variables d'environnement ?

                      As-tu tenté une connexion url par url dans ton interpréteur ? Est-ce que ça le fait pour toutes les URL ?

                      Commentaire

                      Chargement...
                      X