Paste Search Dynamic
Recent pastes
affichage propre dans termina
  1. #!/usr/bin/python3
  2.  
  3. import requests
  4. import sys
  5. import re
  6. import time
  7. import os
  8. from bs4 import BeautifulSoup
  9.  
  10. # affichage propre dans terminal avec url/ip/lang/description/cms  
  11.  
  12.  
  13. def help():
  14.     print("Merci d'entrer un url apres le nom du scrypt")
  15.  
  16. listeUrls = []
  17. UrlsScanned = []
  18. listBlacklist = []
  19.  
  20. def ban():
  21.     blacklist = open("blacklist.txt","r")
  22.     for lines in blacklist:
  23.         listBlacklist.append(lines.rstrip())
  24.     blacklist.close()
  25.  
  26.  
  27.  
  28. def scan(cible):
  29.     print("////////////////////////////////////////// Nouveau scan "+cible)
  30.     commande = 'bash script '+cible.split('//')[-1]
  31.     os.system(commande)
  32.     req = requests.get(cible)
  33.     soup = BeautifulSoup(req.text, "html.parser")
  34.     UrlsScanned.append(cible)
  35.     def search(balise,attr,motif,message):
  36.         for link in soup.findAll(balise,attrs={attr:re.compile((motif))}):  
  37.             print(message)
  38.             break
  39.     #/////////////// traitement de soup infos de la page lang/meta
  40.     try:
  41.         print(soup.title.string)
  42.     except:
  43.         print('pas de soupe pour ce soir')
  44.     print(soup.select('a[href^=mailto]'))
  45.     search("link","href","wp-include","ce site est sous WordPress")
  46.     search("link","href","shopify","ce site est sous Shopify")
  47.     search("meta","content","Joomla","ce site est sous Joomla")
  48.     search("meta","content","Wix","ce site est sous Wix")
  49.     search("link","href","sites/default/files","ce site est sous Drupal")
  50.     search("link","href","squarespace","ce site est sous Squarespace")
  51.     search("link","href","user/themes","ce site est sous Grav?")
  52.     #////////////// pour chaque liens trouvé dans la page
  53.     for link in soup.findAll('a',attrs={'href':re.compile("^(http|https)://")}):  
  54.         domaine = link.get('href')
  55.         domaine = domaine.split('//')[-1].split('/')[0]
  56.         domaine = "https://"+domaine
  57.         #print(domaine+' entraitement')
  58.         bad = 1
  59.         # début traitement de domaine avant ajout a la liste
  60.         for words in listBlacklist:
  61.             #print('pour chaque mots dans blacklist')
  62.             if words in domaine:
  63.                 #print('refus de scan '+domaine)
  64.                 #print(words)
  65.                 bad = 0
  66.                 break
  67.         #print(bad)
  68.         if bad: # bad = 1
  69.             if domaine not in UrlsScanned:  
  70.                 #print('domaine pas dans urlsscanned')
  71.                 if domaine not in listeUrls:
  72.                     #print(' domaine pas dans listeurls')
  73.                     listeUrls.append(domaine)
  74.                     #print("Nous ajoutons un news domaine a la liste "+domaine)
  75. # ////////////////////////////////////////////////////////////////////////////////////////////////////
  76.     for url in listeUrls:
  77.         time.sleep(0.5)
  78.         if url in UrlsScanned:
  79.             #print('cet url a déja etait scann '+url)
  80.             listeUrls.remove(url)
  81.         else:
  82.             #print(listeUrls)
  83.             #print(UrlsScanned)
  84.             try:
  85.                 req = requests.get(url)
  86.             except requests.exceptions.RequestException:
  87.                 print('error connexion '+url)
  88.                 UrlsScanned.append(url)
  89.             else:
  90.                 scan(url)
  91.    
  92.     #print(listeUrls)
  93.     #return listeUrls
  94.  
  95. def main():
  96.     url = sys.argv[1]
  97.     ban()
  98.     print(listBlacklist)
  99.     scan(url)
  100.    
  101.  
  102. # recupere l'url pour scan la page
  103.  
  104.  
  105. if len(sys.argv) <2:
  106.     help()
  107. else:
  108.     main()
Parsed in 0.031 seconds