改进 网站资源探测工具(添加代理)
对网站资源探测工具进行调整,并且添加代理,防止多次访问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
改进 网站资源探测工具(添加代理)相关推荐
- 网站防火墙探测工具Wafw00f
网站防火墙探测工具Wafw00f 现在网站为了加强自身安全,通常都会安装各类防火墙.这些防火墙往往会拦截各种扫描请求,使得测试人员无法正确判断网站相关信息.Kali Linux提供了一款网站防火墙探 ...
- 7个管理和优化网站资源的 Python 工具
前一篇:?[清单]6个将 Python 源码编译成软件的构建工具 汇总一些管理.压缩.缩小网站资源的工具在这里供大家各取所需. 1️⃣django-compressor 将链接和内联的 JavaScr ...
- ux体验网站 英国_?? 用户体验(UX)资源和工具的完整列表??
ux体验网站 英国 by Jason Hreha 杰森·赫雷哈(Jason Hreha) ?? 用户体验(UX)资源和工具的完整列表?? (?? The Complete List of User E ...
- 网站robots.txt探测工具Parsero
网站robots.txt探测工具Parsero robots.txt文件是网站根目录下的一个文本文件.robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当搜索引擎访问一个站点时,它会首 ...
- 网站扫描(Wker_网站探测工具)
Wker_网站探测工具 对于网站的扫描,我们需要完整详细的数据,才能进行准确的分析. 对于网站的分析,我们大致需要以下一些数据. 一. 域名信息查询 whois查询(联系人,联系邮箱,DNS) SEO ...
- Fiddler抓包工具手机添加代理后连不上网解决办法
前言 想利用Fiddler工具给手机添加代理,来监控手机的一系列网络请求.但是fiddler工具给手机设置代理之后,手机竟然上不了网了,尝试了N种方法,终于给解决了. 解决方法 1.关闭电脑防火墙 2 ...
- 优质的懒人资源导航工具集合网站
说到「效率工具」,一直是大家关心的热点话题.作者网站的初心就是我自己也很懒,每一次需要什么东西的时候,都是需要话费很大的一个时间去寻找,但是有了这网站会让你方便许多. 今天,我决定重新开始做一个安利 ...
- 【转】Fiddler抓包工具手机添加代理后连不上网解决办法
转载:Fiddler抓包工具手机添加代理后连不上网解决办法_数据结构和算法的博客-CSDN博客 最近,在工作中需要测试一个监控网络请求的SDK,需要校验该SDK记录的耗时数据的准确性.根据网上大神们提 ...
- App测试---Fiddler抓包工具手机添加代理后连不上网解决办法
在App测试中遇到的问题:Fiddler抓包工具手机添加代理后连不上网 背景:需要测试接口返回值是否ok.因此使用Fiddler工具进行抓包,查看网络请求的返回值.安装Fiddler工具后,在进行Fi ...
最新文章
- 无人机图像处理工具-亮度、对比度、饱和度调整/匀光匀色/图像去雾
- 计算机网络——分层结构,协议,接口和服务
- adpater里写toast_如何在Android中显示Toast?
- 使用SharpKit构建客户端Grid控件
- 全方位打造最强终端(iterm2 + oh my zsh)
- Jquery 实现动态加入table tr 和删除tr 以及checkbox的全选 和 获取加入TR删除TR后的数据...
- ftp 530 This FTP serveris anonymous only,
- 对比python的进程和线程:多线程是假的
- 手机论文查重软件哪个靠谱?
- 怎么配置mysql数据源_mysql怎么样配置ODBC数据源
- 2022高教社杯全国大学生数学建模竞赛B题解析(更新完结)
- 微信小程序-婚礼邀请函页面
- 突破网络执法官封锁的方法及其原理
- 瞻博网络Contrail多云解决方案荣获最佳创新解决方案奖
- Ue4导入视频黑屏原因
- iOS 14 Beta 5 来了,修复游戏闪退问题了,还有着几个变化!
- jboot-admin学习
- 使用weixin-java-miniapp实现微信小程序登录接口
- Python进程池apply_async的callback函数不执行的解决方案
- IP地址归属地查询完整版
热门文章
- 【Qt】Qt程序发布
- [Qt教程] 第11篇 2D绘图(一)绘制简单图形
- 51 nod 1521 一维战舰 时间复杂度O(n),同 Codeforces 567D. One-Dimensional Battle Ships 有详细注释
- FreeBSD设置IP地址,网关,DNS
- redis 缓存击穿 看一篇成高手系列 三
- gcc编译C++程序
- kettle 笛卡尔_Kettle用户操作手册1
- 整理记录word2016小技巧,自用
- tensorboard ValueError: Duplicate plugins for name projector
- Linux多线程之线程同步(条件变量)