vendredi 15 janvier 2016

Qu'est-ce qu'on peut faire avec une URL ?

Bonjour à tous,

Voici ci-dessous une classe que j'ai créé permettant de vérifier, ouvrir et afficher tout les liens morts dans une page web :rolleyes:

Code:

import webbrowser as wb
from lepl.apps.rfc3696 import HttpUrl # pour valider une url
import lxml.html
import requests

class Url:
    def __init__(self, myUrl):
        self.url = myUrl
   
    def is_validate(self):
        """Est-ce que l'URL est convenablement écrit ?"""
        validator = HttpUrl()
       
        if not validator(self.url):
            return False
       
        return True
   
    def is_opened(self):
        """Est-ce que l'URL est atteignable ?"""
        if self.is_validate():
            r = requests.get(self.url)
           
            if r.status_code == 200:
                return True
               
        return False
       
    def open(self, browser=None):
        """Ouvrir la page dans un navigateur web"""
        valid = self.is_opened()
       
        if not valid:
            return "l'URL n'est pas ouvrable"
       
        if browser:
            try:
                browser = wb.get(browser)
            except wb.Error:
                browser = None
       
        if browser:
            browser.open(self.url)
           
        wb.open(self.url)
       
    def getAllLinks(self):
        """Trouver tous les liens d'une page"""
        r = requests.get(self.url)
        page = r.content
        dom =  lxml.html.fromstring(page)

        for link in dom.xpath('//a/@href'):
            yield link 

myURL = Url("http://ift.tt/1HAwdRl;)
myURL.open('mozilla')

Si je voulais vérifier tout les liens morts d'une page web

Code:

myURL = Url("http://ift.tt/1HAwdRl;)
for url in myURL.getAllLinks():
    url = Url(url)
    if not url.is_opened():
        print("l'url {} n'est plus valide !".format(url.url))

Bien-sûr ce code est perfectible, améliorable surtout dans le sens ajouts de fonctionnalités, mais ça permet déjà pas mal de choses basiques.;)


from Hackademics : Forum de hacking – hackers white hat – cours de securite informatique, apprendre langage python, tutoriels de reverse engineering http://ift.tt/1ldU1WE
via IFTTT

Aucun commentaire:

Enregistrer un commentaire