python语言
文章平均质量分 60
python相关知识
谢北先生
。
展开
-
Python学习手册
python基础语法原创 2021-09-16 13:04:58 · 4435 阅读 · 1 评论 -
python协程入门实战详解
本章将以通俗易懂、贴合实际的方式介绍以下内容:协程是什么,有什么特点,协程的优势是什么如何理解事件和事件循环协程的创建方式,如何控制协程的并发量在协程中使用aiohttp发送HTTP请求aiohttp案例协程中的异常处理,请求重试,使用 asyncio.Lock 保护共享资源如何捕获KeyboardInterrupt异常在协程中使用tqdm显示进度条。原创 2024-06-04 17:36:26 · 1231 阅读 · 2 评论 -
python实现对excel表中的某列数据进行排序
如下需要对webCms中的B列数据进行升序排序,且不能影响到其他列、工作表中的数据和格式。原创 2023-09-05 18:47:57 · 2786 阅读 · 0 评论 -
使用virtualenv打包python程序
使用virtualenv + virtualenvwrapper-win打包python文件原创 2023-06-08 13:54:58 · 499 阅读 · 0 评论 -
python实现fofa调用api批量查询子域
在红蓝对抗的时候,需要频繁的使用fofa进行子域名的查找,如果一个一个域名去查找子域,那效率太低了且耗时,我们可以利用fofa提供的api批量的对一批主域进行子域名的查找!原创 2022-08-05 11:18:54 · 3219 阅读 · 0 评论 -
python多进程与多线程
进程程(Process)是资源分配的最小单位,它是操作系统进行资源分配和调度运行的基本单位,通俗理解:一个正在运行的程序就是一个进程。例如:正在运行的qq,微信等他们都是一个进程原创 2022-08-03 15:55:51 · 3059 阅读 · 1 评论 -
Python办公自动化之Excel
前言Python处理Excel的包是openpyxl,如果你是直接下载的anaconda安装的Python库,那么下载的时候,自带的就已经安装了openpyxl,如果不是,也可以直接在cmd之中,使用pip install openpyxl安装。安装完成之后,我们应该了解一下Excel的组成部分,如下图所示:Excel文件三个对象workbook: 工作簿如excel.xlsx,一个excel文件包含多个sheet。sheet:工作表,一个workbook有多个,表名识别,如“she原创 2021-12-21 17:44:23 · 3580 阅读 · 3 评论 -
python requests请求url中存在url编码字符时发送请求如何不进行自动解码
今天在写漏洞POC的时候,poc是如下这样的,其中%2e是 . 的url编码形式,我用requests发送请求时会自动将%2e url解码为 . 。这样是不行的,必须要使用原始字符串方式进行发送http://172.16.10.102:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd如下我用requests发送请求,我将脚本的流量截取,发现自动将%2e转换成了 .所以,现在需要解决这个问题,如何不让其自动转换。我发现使用urllib.req..原创 2021-10-09 16:32:50 · 4410 阅读 · 0 评论 -
python中urllib.request使用
requests比urllib.request更加强大便捷,但是urllib.request也有其优点。我们都知道,urlopen()方法能发起最基本对的请求发起,但仅仅这些在我们的实际应用中一般都是不够的,可能我们需要加入headers之类的参数,那需要用功能更为强大的Request类来构建了GET请求可直接通过urlopen()方法来发起一个简单的web请求。如下请求https的网站并携带headers信息import urllib.requestimport ssl#添加Head原创 2021-10-09 16:20:52 · 3368 阅读 · 0 评论 -
使用python发送邮件
准备写一个漏洞预警信息脚本,每天定时发送漏洞邮件给自己。python发送邮件有原生的smtplib和email库,但添加附件的时候,需要自己设置MIME, 代码最少也会有十多行, 不太方便,本章主要介绍python中如何使用更方便的yagmail库来发送邮件。基本概念我们先了解几个基本的概念POP3: Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。 SMTP: Simple Mail原创 2021-10-07 11:13:43 · 3552 阅读 · 3 评论 -
python异步爬虫之线程池
单线程不足之处当对多个url发送请求时,只有请求完第一个url才会接着请求第二个url(requests是一个阻塞的操作),比如下载图片,这种一个个执行的方式称为单线程。其存在等待的时间,这样效率是很低的。那我们能不能在发送请求等待的时候,为其单独开启进程或者线程以异步的方式进行,继续请求下一个url,执行并行请求呢?这样看起来相当于同时下载很多张图片一样,速度明显提升。异步爬虫有如下基于异步爬虫的方案多线程或多进程(不建议)好处:可以为相关阻塞的操作单独开启线程或者进程,阻塞操作就可以异原创 2021-10-05 16:44:55 · 3261 阅读 · 0 评论 -
python中requests设置代理服务器
目录代理requests设置代理代理ip的匿名度我们应该都有过被封ip的情况,通常当某个ip在单位时间内请求的次数超过阈值则网站的安全设备会将其进行封禁。或者我们想隐藏自己真实ip,我们就可以进行设置代理代理1. 代理proxy首先从概念上讲,代理这个词的汉语解释:受委托代表当事人进行某种活动。 也就是说,代理的作用就是代替别人做一些事情,比如,代理律师,就是代表当事人进行法律的活动。2. 代理服务器proxy server 我们将上面的概念进行类...原创 2021-10-05 13:09:32 · 22239 阅读 · 2 评论 -
python模拟登录dvwa(带token)
有时候网站进行登录的时候会携带一个token值,如dvwa的登录而这个token值在每次请求页面的时候都会进行刷新,我们要想进行登录就必须携带这个token,而这个token值怎么才能获取到了?其实这个token就是在前端页面中生成的,我们可以右键查看元素找到它。然后提取它出来就行import requestsfrom lxml import etreeurl = "http://192.168.43.206/2_Shotting_Range/DVWA/login.php"head原创 2021-10-05 10:57:22 · 3126 阅读 · 2 评论 -
python模拟登录网站(带图形验证码)
往期回顾:上一次说了python模拟登录不带验证码的网站,现在来说说如果带验证码的网站怎么办验证码也是一种反爬机制,如果登陆地方存在验证码我们有两种思路对验证码进行识别肉眼识别,即我们将验证码下载下来自己进行识别然后手动输入,这个适合咱们网络安全的人 第三方识别平台——如云打码,斐斐打码等,适合专业python人员因为本人从事的是渗透测试,爬虫只是用来简单的爬取一些漏洞数据,所以这里我就只演示利用肉眼识别验证码的方式。每次请求登录页面验证码都会刷新,所以还是需要用到session对象。代码.原创 2021-10-03 18:13:37 · 12119 阅读 · 3 评论 -
python模拟登录bwapp(不带图形验证码)
如下,当我们输入用户名密码进行登录的时候,浏览器向服务器发送了一个post请求,并携带了用户名、密码等参数。成功登录后服务器会进行一个302跳转并返回一个cookie值,此后每次发送请求都会携带这个cookie进行访问,代表我是这个已经登录的用户进行访问的如登录失败则返回200,并且不会返回cookie值但是如果按照之前这样requests.post(),直接发送登录请求。登录成功后在继续请求登录后的的页面是会不成功的,因为此时并没有携带用户的身份信息,服务器并不知道你的身份是已经登录后的.原创 2021-10-02 13:50:51 · 3247 阅读 · 0 评论 -
当python爬虫遇到重定向
在用python模拟登陆时,如果登陆成功则会返回302状态码,接着就会请求登录成功后的主页信息。而我一开始做了如下的判断:发送登录数据,如果返回302则说明登录成功然后请求登录后的主页。然而一直显示登录不成功,状态码也是200?但是我用proxychains抓包查看确实登录成功了,我就纳闷了于是我接着将请求的url打印出来,发现是已经重定向之后的url不是登录的url!原来,如果没有禁止重定向,则requests返回的响应对象为进行重定向之后的响应对象所以要判断是否为302的状态码,需要禁止原创 2021-10-02 12:26:08 · 3126 阅读 · 1 评论 -
Python 正则表达式详解(建议收藏!)
正则表达式是对字符串提取的一套规则,我们把这个规则用正则里面的特定语法表达出来,去匹配满足这个规则的字符串。正则表达式具有通用型,不仅python里面可以用,其他的语言也一样适用。python中re模块提供了正则表达式的功能,常用的有四个方法(match、search、findall)都可以用于匹配字符串match匹配字符串match方法尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。例子。原创 2021-10-01 20:05:53 · 116171 阅读 · 47 评论 -
python爬虫之使用requests进行图片爬取
前期回顾,关于python基础知识以及爬虫基础我们可以看——>python学习手册,网络安全的小伙伴千万不要错过。图片爬取思路学会这一技能需要我们会python基础,xpath解析,其用来解析出网页中图片所在的地址。解析出来地址就需要我们保存图片了。那如何将一张张图片保存下来了?我们可以使用requests的响应对象属性content来获取图片的二进制数据。接着就使用with open()函数进行保存就行了,这样一张图片就获取到了。是不是很简单了!获取网页源代码 解析出图片地址 获..原创 2021-09-30 11:41:10 · 15382 阅读 · 10 评论 -
requests请求中文乱码解决办法
有时候用requests请求网站数据,获取到的中文信息会发生乱码的现象解决办法1. 查看网页编码方式如下,查看网站源码,编码为gbk2. 设置requests响应对象编码方式与网页一样response = requests.get(url=url,headers=headers,timeout=15)response.encoding = 'gbk'response_text = response.text这样获取的中文数据就不会发生了乱码了...原创 2021-09-30 11:04:43 · 3422 阅读 · 0 评论 -
python数据解析之XPath
XPathXPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。xpath是最常用且最便捷高效的一种解析方式,通用型强,其不仅可以用于python语言中,还可以用于其他语言中,数据解析建议首先xpath。XPath使用方法xpath解析原理:实例化一个etree的对象,且需要将被解析的页面源代码数据加载到该对象中 调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获安装lxmlpip i原创 2021-09-28 15:27:14 · 3206 阅读 · 3 评论 -
python数据解析之BeautifulSoup
目录数据解析Beautiful SoupBeautiful Soup用法案例—爬取三国演义章节及对应的内容数据解析数据解析就是将爬取到的整个页面中的局部的内容进行提取。python中常用的数据解析方式有以下三种:bs4(python中独有的) xpath(推荐,通用型强) 正则数据解析原理概述:首先我们知道需要解析(提取)的内容都会在标签之间或者标签对应的属性中进行存储 所以我们需进行指定标签的定位 然后将标签或者标签对应的属性中存储的数据值进行提取(解析)Bea原创 2021-09-27 16:52:34 · 3444 阅读 · 0 评论 -
requests发送POST请求案例—爬取药监总局化妆品详情数据
药监局地址——>化妆品生产许可信息管理系统服务平台需求分析进入如下页面,我们要获取如下每一个化妆品公司里面具体的详情数据(需要点击进去)经页面分析,两个页面都是发送的ajax请求。且都是以POST方式进行发送。代码编写import requestsimport jsonheaders={ 'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.3..原创 2021-09-27 11:47:08 · 2665 阅读 · 0 评论 -
requests发送GET请求案例—爬取豆瓣电影分类排行榜中的电影详情数据
进入到如下界面,当我们鼠标往下滑的时候,页面会自动进行刷新,可以知道是发送的ajax请求捕获agax请求如下,发送的是GET请求,地址为https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=20&limit=20请求携带的参数如下,start代表从电影的第几部开始获取,limit代表每次获取的电影数量且返回的数据类型为json..原创 2021-09-27 10:24:08 · 3372 阅读 · 0 评论 -
python中requests发送POST请求—爬取百度翻译接口案例
目录request.post()中的参数Ajax案例——百度翻译继上一章 ——>python中requests发送GET请,下面说如何进行发送POST请求request.post()中的参数requests中发送post请求里面有几个基础的参数如下requests.post(url=url,data=data,headers=headers)data:请求所携带的参数,以字典的形式进行封装Ajax首先来说一下什么是Ajax,Ajax 即“Asynchrono..原创 2021-09-26 16:54:51 · 5464 阅读 · 2 评论 -
python中requests发送GET请求
目录UA检测与伪装request.get()中的参数案例—百度搜索UA检测与伪装UA: User-Aaent(请求载体的身份标识)UA检测:在用爬虫爬取数据的时候,我们需要进行UA伪装。因为门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某款浏览器说明该请求是个正常的请求。但是如果检测到请求的载体身份标识不是基于某款浏览器的。则表示该请求为不正常的请求(爬虫)。则服务器端就很有可能拒绝该请求。UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器原创 2021-09-26 10:16:41 · 22110 阅读 · 4 评论 -
python之requests模块详解
目录requests使用requests请求方法requests响应对象属性Requests模块是一个用于网络请求的模块,主要用来模拟浏览器发请求。其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能。但是这些模块都复杂而且差不多过时了,requests模块简单强大高效,使得其在众多网络请求模块中脱引而出。requests使用环境安装:pip install requests使用流程:指定url 基于reques原创 2021-09-24 18:11:40 · 18996 阅读 · 4 评论 -
python爬虫基础知识
爬虫爬虫简单来说,就是通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。可以把浏览器简单的理解为一个原始的天然的爬虫工具爬虫的作用可以获取有价值的信息,如渗透测试的时候我们可以通过编写python脚本批量进行漏洞验证或者爬取网站有价值的数据爬虫的合法性爬虫技术本身是合法的,但是利用其进行非法获取数据则是不合法的。如爬虫干扰了被访问网站的正常运营 爬虫抓取了收到法律保护的特定类型的数据或信息则属于恶意爬虫爬虫分类1. 通用爬虫各大搜索引...原创 2021-09-24 13:13:59 · 4054 阅读 · 4 评论 -
python中模块与包
目录模块模块的使用if __name__ == "__main__":包模块当代码量很大的时候,我们不可能把所有的代码写在一个文件中,所以这时候就需要分多个.py文件进行写代码。一个.py文件就是一个模块。如文件名为main.py,那么模块名就为main。即可以把模块理解为文件。像之前的 import random,random就是一个文件模块的使用1. from 模块名 import xx从指定的模块中导入指定的东西。如下在main文件中导入function模块中的函数原创 2021-09-22 16:48:10 · 2617 阅读 · 2 评论 -
python异常捕获
异常程序在运行时,如果Python 解释器遇到到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常。程序停止执行并且提示错误信息这个动作,我们通常称之为:抛出(raise)异常我们在写python脚本时,很难将所有的特殊情况都处理的面面俱到,通过异常捕获可以针对突发事件做提前的处理比如自定义异常提示信息,从而保证程序的稳定性。python异常处理捕捉异常可以使用try/except语句。try: 执行的代码except: 如果try中的语句异常,则提示的信息原创 2021-09-20 23:26:22 · 2672 阅读 · 1 评论 -
python之os模块操作文件与文件夹
OS模块是Python标准库中的一个用于访问操作系统功能的模块。使用OS模块中提供的接口,可以实现跨平台访问。常用操作:对目录、文件、文件夹的操作 获取平台信息 判断操作接下来是OS对文件与文件夹的操作OS操作文件与文件夹首先需要导入OS模块,import os增os.mkdir("hello") #在当前目录中创建一个"hello"文件夹删os.remove('文.........原创 2021-09-20 12:43:50 · 10373 阅读 · 1 评论 -
Python 文件打开读取写入方法
目录前言open()方法with open()方法实用案例前言读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。python中对文件的操作方法经常使用open和原创 2021-09-20 11:11:29 · 22310 阅读 · 3 评论 -
Python中的函数
目录函数定义函数嵌套调用全局变量与局部变量返回值return递归函数函数是一系列语句的集合,其让代码可读性更高,实现代码复用函数定义1. 函数定义Python 定义函数使用 def 关键字,一般格式如下:def 函数名(形参): #函数定义,形参与实参可以传递也可以不传递 函数体函数名(实参) #函数调用如下定义一个不带参数的函数def hello() : print("Hello World!")hello()原创 2021-09-17 12:31:12 · 2667 阅读 · 0 评论 -
python使用requests库提交multipart/form-data请求
今天渗透测试的时候,发现一个接口可以越权遍历出用户的敏感信息,然后想编写python脚本将所有信息都给dump下来。当我查看请求数据的时候,是如下这样的。不同于之前的请求数据是json可以直接使用data然后封装成字典就可以进行发送请求这里的content-type是 multipart/form-datamultipart/form-dataMultipart/form-data其实就是上传文件的一种方式。我对它的翻译是 “多部分表单数据” ;在生活中其实经常用到,比如说,在写邮件时,向.原创 2021-08-24 15:54:21 · 10989 阅读 · 8 评论 -
异步爬虫之多线程与线程池
目录背景异步爬虫方式多线程线程池背景当对多个url发送请求时,只有请求完第一个url才会接着请求第二个url(requests是一个阻塞的操作),存在等待的时间,这样效率是很低的。那我们能不能在发送请求等待的时候,为其单独开启进程或者线程,继续请求下一个url,执行并行请求异步爬虫方式- 多线程,多进程(不建议) 好处:可以为相关阻塞的操作单独开启线程或者进程,阻塞操作就可以异步会执行 弊端:不能无限制开启多线程或者多进程(需要频繁的创建或者销...原创 2021-06-30 13:56:34 · 5132 阅读 · 0 评论 -
python之面向对象
面向对象是一种编程思想。属性和行为,是面向对象里面两个不可缺少的东西。类: 具有相同属性或者行为的一类实物,类是抽象的,如人类,植物类,动物类 对象:是类的具体事例,对象是具体存在的。如动物类中的哈士奇方法(行为)就是写在类中的函数,函数名的括号中多了一个self类的名字首字母大写,多个单词的话首字母都是大写(驼峰式写法)魔术方法魔术方法也叫初始化方法,即初始化对象时会自动执行此方法除了动作外,类中还有属性,我们用魔法方法 __init__() 来赋值属性 __init__ 函原创 2021-06-29 16:47:29 · 5073 阅读 · 0 评论 -
python3之http.server模块
有时候我们需要快速地搭建一个web服务,这时我们就可以使用python里面的http.server模块搭建http服务器。实现的方式有以下几种。BaseHTTPServer模块在Python3中已被合并到http.server1. 命令行启动pyhton -m http.server 80 #pyhton3中启动方式,开启的端口为80python -m SimpleHTTPServer 8080 #python2启动方式这种是常用的方式,很简单。2. 代原创 2021-06-22 10:48:18 · 58335 阅读 · 6 评论 -
Python2代码自动转化为Python3
网上很多脚本都是使用python2写的,而现在我们用的大多是都是python3,这样使用起来很不方便。为了简化这个转换过程,Python 3自带了一个叫做2to3的实用脚本(Utility Script),这个脚本会将你的Python 2程序源文件作为输入,然后自动将其转换到Python 3的形式。本文介绍一下在windows 10 环境下如何使用这个工具:1. 获取python安全路径where python2. 进入到Python\Python38\Tools\scripts.原创 2021-06-21 17:26:41 · 4954 阅读 · 0 评论 -
pyhton中的time模块
strftime()用于时间的格式化输出from time import gmtime, strftimet = strftime("%m/%d/%Y", gmtime()) #输出 月/日/年print(t)ctime()获取当前日期和时间import timet1 = time.ctime() print(t1)datetimefrom datetime import datetimec1 = datetime.now().hour #输原创 2021-06-16 10:06:54 · 4737 阅读 · 0 评论 -
Tkinter 实现可视化exp工具
创建一个GUI程序的步骤1、导入 Tkinter 模块 2、创建控件 3、指定这个控件的 master, 即这个控件属于哪一个 4、告诉 GM(geometry manager) 有一个控件产生了。从实例中来学习Tkinter的使用,理解其中的各种控件的使用方法创建空白窗口import tkinterroot = tkinter.Tk() #初始化root.title("python学习") #标题root.minsize(600,3...原创 2021-06-03 15:12:30 · 5339 阅读 · 2 评论 -
Python中sys.argv[]的用法
sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。druid.py如下import sysa = sys.argv[0]print(a)保存运行如下得到的结果是test.py,这就是0指代码(即此.py程序原创 2021-06-02 10:29:22 · 4725 阅读 · 1 评论