使用Python怎么实现一个网站目录扫描器

  介绍

使用Python怎么实现一个网站目录扫描器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Python主要用来做什么

Python主要应用于:1,网络开发;2、数据科学研究;3,网络爬虫;4、嵌入式应用开发,5日游戏开发;6桌面应用开发。

WebDirScanner。py:

#, - *安康;编码:utf-8  - * -   时间=__author__ “Yiqing"   import 系统   import 线程   import 随机   得到Queue  import 队列   得到optparse  import  OptionParser      试一试:   import 才能请求   except 例外:   print 才能“[!],你need 用install  requests 模块!“   print 才能“[!],用法:pip  install  requests"   退出()才能         class  WebDirScan:   “才能”;“   网络才能目录扫描器   “才能”;“      def 才能__init__(自我,选项):   ,,,self.url =options.url   ,,,self.file_name =options.file_name   ,,,self.count =options.count      class 才能DirScan (threading.Thread):   ,,,,,,   ,,,多线程   ,,,,,,      ,,,def  __init__(自我,,队列,,总):   ,,,,,threading.Thread.__init__(自我)   ,,,,,self._queue =,队列   ,,,,,self._total =总      ,,,def 运行(自我):   ,,,,,while  not  self._queue.empty ():   ,,,,,,,url =, self._queue.get ()   ,,,,,,,#,多线程显示进度   ,,,,,,,threading.Thread(目标=self.msg) .start ()   ,,,,,,,试一试:   ,,,,,,,,,r =, requests.get (url=url,标题=get_user_agent(),超时=5)   ,,,,,,,,,if  r.status_code ==, 200:   ,,,,,,,,,,,sys.stdout.write (& # 39; \ " # 39;, +, & # 39; [+] % s \ t \ \ n # 39;, %, url)   ,,,,,,,,,,,#,保存到本地文件,以HTML的格式   ,,,,,,,,,,,result =,开放(& # 39;result.html& # 39;,, & # 39; a + & # 39;)   ,,,,,,,,,,,result.write (& # 39; & lt; a  https://www.yisu.com/zixun/href=" + url +”rel==捌降取?“外部nofollow”目标url ' + +” ')   result.write (“/r/n
”)   result.close ()   除了例外:   通过      def味精(自我):   ”“”   显示进度   返回:没有   ”“”/=100 -浮动(self._queue.qsize())/浮动(self._total) * 100   %=" % s完成所有| | % s % 1的扫描。f % s“% (   (自我。_total - self._queue.qsize()),自我。_total,每' % ')   sys.stdout。写('/r ' + '[*] +百分比)      def开始(自我):   结果=开放(的结果。html”、“w”)   result.close ()   队列=队列()   f=(“dict开放。txt”、“r”)   因为我在f.readlines ():   queue.put(自我。+ " + i.rstrip url (/n))   总=queue.qsize ()   线程=[]   thread_count=int (self.count)   因为我在范围(thread_count):   threads.append(自我。DirScan(队列,总))   线程的线程:   thread.start ()   线程的线程:   thread.join ()         def get_user_agent ():   ”“”   用户代理的细节处理   返回:   ”“”   user_agent_list=[   {“用户代理”:“Mozilla/4.0 (Mozilla/4.0;MSIE 7.0;Windows NT 5.1;FDM;SV1;net CLR 3.0.04506.30)},   {“用户代理”:“Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.0;en) Opera 11.00的},   {   “用户代理”:“Mozilla/5.0 (X11;U;Linux i686;德;Ubuntu房车:1.9.0.2)壁虎/2008092313/8.04(哈代)Firefox/3.0.2 "},   {   “用户代理”:“Mozilla/5.0 (X11;U;Linux i686;en;房车:1.9.1.15)壁虎/20101027 Fedora/3.5.15-1。fc12 Firefox/3.5.15 '},   {   “用户代理”:“Mozilla/5.0 (X11;U;Linux i686;en - us) AppleWebKit/534.10 (KHTML,像壁虎)Chrome/8.0.551.0 Safari 534.10 "},   {“用户代理”:“Mozilla/5.0 (X11;U;Linux i686;en - us;房车:1.9.0.2)壁虎/2008092809 Gentoo Firefox/3.0.2 '},   {   “用户代理”:“Mozilla/5.0 (X11;U;Linux x86_64;en - us) AppleWebKit/534.10 (KHTML,像壁虎)Chrome/7.0.544.0 '},   {“用户代理”:“歌剧/9.10 (Windows NT 5.2;U;en)},   {   “用户代理”:“Mozilla/5.0 (iPhone;U;CPU系统3 _2像Mac OS X;en - us) AppleWebKit/531.21.10 (KHTML,像壁虎)},   {“用户代理”:“歌剧/9.80 (X11;U;Linux i686;en - us;房车:1.9.2.3)转眼间/2.2.15版本/10.10 '},   {   “用户代理”:“Mozilla/5.0 (Windows;U;Windows NT 5.1;ru-RU) AppleWebKit/533.18.1 (KHTML,像壁虎)版本/5.0.2 Safari/533.18.5 '},   {“用户代理”:“Mozilla/5.0(窗口;U;Windows NT 5.1;俄文;房车:Firefox 1.9 b3)壁虎/2008020514/3.0 b3},   {   “用户代理”:“Mozilla/5.0(麦金塔电脑;U;PPC Mac OS X 10 _4_11;fr) AppleWebKit/533.16 (KHTML,像壁虎)/5.0版Safari/533.16”},   {   “用户代理”:“Mozilla/5.0(麦金塔电脑;U;null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

使用Python怎么实现一个网站目录扫描器