2010-02-19 7 views
0
import urllib 
import re 
import os 
search = (raw_input('[!]Search: ')) 
site = "http://www.exploit-db.com/list.php?description="+search+"&author=&platform=&type=&port=&osvdb=&cve=" 
print site 
source = urllib.urlopen(site).read() 
founds = re.findall("href='/exploits/\d+",source) 
print "\n[+]Search",len(founds),"Results\n" 
if len(founds) >=1: 
     for found in founds: 
       found = found.replace("href='","") 
       print "http://www.exploit-db.com"+found 
else: 
     print "\nCouldnt find anything with your search\n" 

Lorsque je recherche sur le site explo-db.com, je ne fais que 25 résultats, comment puis-je aller à l'autre page ou passer 25 résultats.Recherche d'un site Web

+0

L'utilisation d'expressions rationnelles pour analyser HTML est incorrecte. Voir http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags et quelques-uns des nombreux autres sujets traitant de ce sujet. –

Répondre

0

Facile à vérifier par simplement visiter le site et en regardant les URL que vous la page manuellement: il suffit de mettre à droite après le ? dans l'URL page=1& pour regarder la deuxième page de résultats, ou page=2& regarder la troisième page, et ainsi de suite.

Comment est-ce une question Python? C'est une question de "grattage" (très élémentaire!).

+0

Alex, je cherche tout en recherchant des résultats à la page 1 ou en général il ne saute pas à la deuxième page ou il ne passe pas de 25 résultats .. je ne sais pas ce qui se passe – sourD

+0

Je suppose que je devrais avoir ** en gras ** 'page = 1 &' regarder la partie ** ** de la page des résultats "de ma réponse depuis que vous avez accepté une réponse plus tard (sans aucun doute la mienne et celle" croisée sur le net "puisqu'ils étaient si proches les uns des autres) qui donne exactement cette information (mais ajoute le mot "Attention" ;-). –

+0

merci Alex;) – sourD

0

Apparemment, le site exploit-db.com ne permet pas d'étendre la taille de la page. Vous devez donc parcourir manuellement la liste des résultats en répétant urllib.urlopen() pour obtenir les pages suivantes. L'URL est la même que celle initialement utilisée, plus le paramètre &page=n. Attention, cette valeur n semble être 0 (c'est-à-dire & page = 1 donnera la deuxième page)

+0

oooh ok merci l'homme – sourD