对网站资源探测工具进行调整,并且添加代理,防止多次访问ip被封的情况。

#获取代理,并写入agents列
def agent_list(url):global agent_listsagent_lists = []header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0'}r = requests.get(url,headers = header)agent_info = BeautifulSoup(r.content,'html.parser').find(id = "ip_list").find_all('tr')[1:]for i in range(len(agent_info)):info = agent_info[i].find_all('td')agents = {info[5].string : 'http://' + info[1].string}agent_lists.append(agents)

修改后的 网站资源扫描工具:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# by 默不知然 2018-03-15import threading
from threading import Thread
from bs4 import BeautifulSoup
import time
import sys
import requests
import getopt
import random#创建类,并对目标网站发起请求
class scan_thread (threading.Thread):global real_url_listreal_url_list = []def __init__(self,url):threading.Thread.__init__(self)self.url = urldef run(self):try:proxy = random.sample(agent_lists,1)[0]r = requests.get(self.url, proxies = proxy)print(self.url,'------->>',str(r.status_code))if int(r.status_code) == 200:real_url_list.append(self.url)l[0] = l[0] - 1except Exception as e:print(e)#获取字典并构造url并声明扫描线程
def url_makeup(dicts,url,threshold):global url_listglobal lurl_list = []l =[]l.append(0)dic = str(dicts)with open (dic,'r') as f:code_list = f.readlines()for i in code_list:url_list.append(url+i.replace('\r','').replace('\n',''))while len(url_list):try:if l[0] < threshold:n = url_list.pop(0)l[0] = l[0] + 1thread = scan_thread(n)thread.start()except KeyboardInterrupt:print('用户停止了程序,完成目录扫描。')sys.exit()#获取输入参数
def get_args():global get_urlglobal get_dictsglobal get_thresholdtry:options,args = getopt.getopt(sys.argv[1:],"u:f:n:")except getopt.GetoptError:print("错误参数")sys.exit()for option,arg in options:if option == '-u':get_url = argif option == '-f':get_dicts = argif option == '-n':get_threshold = int(arg)
#获取代理,并写入agents列
def agent_list(url):global agent_listsagent_lists = []header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0'}r = requests.get(url,headers = header)agent_info = BeautifulSoup(r.content,'html.parser').find(id = "ip_list").find_all('tr')[1:]for i in range(len(agent_info)):info = agent_info[i].find_all('td')agents = {info[5].string : 'http://' + info[1].string}agent_lists.append(agents)#主函数,运行扫描程序
def main():agent_url = 'http://www.xicidaili.com/nn/1'agent_list(agent_url)get_args()url = get_urldicts = get_dictsthreshold = get_thresholdurl_makeup(dicts,url,threshold)time.sleep(0.5)print('目标网站存在目录: ','\n', real_url_list)with open(r'网站目录扫描结果.txt','w') as f:for i in real_url_list:f.write(i)f.write('\n')if __name__ == '__main__':main()

对某网站扫描结果:

转载于:https://www.cnblogs.com/kaiho/p/8578848.html

改进 网站资源探测工具(添加代理)相关推荐

  1. 网站防火墙探测工具Wafw00f

     网站防火墙探测工具Wafw00f 现在网站为了加强自身安全,通常都会安装各类防火墙.这些防火墙往往会拦截各种扫描请求,使得测试人员无法正确判断网站相关信息.Kali Linux提供了一款网站防火墙探 ...

  2. 7个管理和优化网站资源的 Python 工具

    前一篇:?[清单]6个将 Python 源码编译成软件的构建工具 汇总一些管理.压缩.缩小网站资源的工具在这里供大家各取所需. 1️⃣django-compressor 将链接和内联的 JavaScr ...

  3. ux体验网站 英国_?? 用户体验(UX)资源和工具的完整列表??

    ux体验网站 英国 by Jason Hreha 杰森·赫雷哈(Jason Hreha) ?? 用户体验(UX)资源和工具的完整列表?? (?? The Complete List of User E ...

  4. 网站robots.txt探测工具Parsero

    网站robots.txt探测工具Parsero robots.txt文件是网站根目录下的一个文本文件.robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当搜索引擎访问一个站点时,它会首 ...

  5. 网站扫描(Wker_网站探测工具)

    Wker_网站探测工具 对于网站的扫描,我们需要完整详细的数据,才能进行准确的分析. 对于网站的分析,我们大致需要以下一些数据. 一. 域名信息查询 whois查询(联系人,联系邮箱,DNS) SEO ...

  6. Fiddler抓包工具手机添加代理后连不上网解决办法

    前言 想利用Fiddler工具给手机添加代理,来监控手机的一系列网络请求.但是fiddler工具给手机设置代理之后,手机竟然上不了网了,尝试了N种方法,终于给解决了. 解决方法 1.关闭电脑防火墙 2 ...

  7. 优质的懒人资源导航工具集合网站

    说到「效率工具」,一直是大家关心的热点话题.作者网站的初心就是我自己也很懒,每一次需要什么东西的时候,都是需要话费很大的一个时间去寻找,但是有了这网站会让你方便许多. 今天,我决定重新开始做一个安利 ...

  8. 【转】Fiddler抓包工具手机添加代理后连不上网解决办法

    转载:Fiddler抓包工具手机添加代理后连不上网解决办法_数据结构和算法的博客-CSDN博客 最近,在工作中需要测试一个监控网络请求的SDK,需要校验该SDK记录的耗时数据的准确性.根据网上大神们提 ...

  9. App测试---Fiddler抓包工具手机添加代理后连不上网解决办法

    在App测试中遇到的问题:Fiddler抓包工具手机添加代理后连不上网 背景:需要测试接口返回值是否ok.因此使用Fiddler工具进行抓包,查看网络请求的返回值.安装Fiddler工具后,在进行Fi ...

最新文章

  1. 无人机图像处理工具-亮度、对比度、饱和度调整/匀光匀色/图像去雾
  2. 计算机网络——分层结构,协议,接口和服务
  3. adpater里写toast_如何在Android中显示Toast?
  4. 使用SharpKit构建客户端Grid控件
  5. 全方位打造最强终端(iterm2 + oh my zsh)
  6. Jquery 实现动态加入table tr 和删除tr 以及checkbox的全选 和 获取加入TR删除TR后的数据...
  7. ftp 530 This FTP serveris anonymous only,
  8. 对比python的进程和线程:多线程是假的
  9. 手机论文查重软件哪个靠谱?
  10. 怎么配置mysql数据源_mysql怎么样配置ODBC数据源
  11. 2022高教社杯全国大学生数学建模竞赛B题解析(更新完结)
  12. 微信小程序-婚礼邀请函页面
  13. 突破网络执法官封锁的方法及其原理
  14. 瞻博网络Contrail多云解决方案荣获最佳创新解决方案奖
  15. Ue4导入视频黑屏原因
  16. iOS 14 Beta 5 来了,修复游戏闪退问题了,还有着几个变化!
  17. jboot-admin学习
  18. 使用weixin-java-miniapp实现微信小程序登录接口
  19. Python进程池apply_async的callback函数不执行的解决方案
  20. IP地址归属地查询完整版

热门文章

  1. 【Qt】Qt程序发布
  2. [Qt教程] 第11篇 2D绘图(一)绘制简单图形
  3. 51 nod 1521 一维战舰 时间复杂度O(n),同 Codeforces 567D. One-Dimensional Battle Ships 有详细注释
  4. FreeBSD设置IP地址,网关,DNS
  5. redis 缓存击穿 看一篇成高手系列 三
  6. gcc编译C++程序
  7. kettle 笛卡尔_Kettle用户操作手册1
  8. 整理记录word2016小技巧,自用
  9. tensorboard ValueError: Duplicate plugins for name projector
  10. Linux多线程之线程同步(条件变量)