介绍
使用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怎么实现一个网站目录扫描器