python中常见库及模块用途
简介
Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,python中有许多常见的库,
要想了解这些库的作用及用法就先了解一下这些库的主要功能吧!(自己整理的笔记,仅作参考!!)
requests爬虫信息处理
requests是使用Apache2 licensed 许可证的HTTP库。
from bs4 import BeautifulSoup import requests r = requests.Session() s = r.get("http://123.206.87.240:8002/qiumingshan/") s.encoding = 'utf-8' text = s.text soup = BeautifulSoup(text) tag = soup.div express = str(tag.string) express = express[0 : -3] answer = eval(express) ans = {"value" : answer} flag = r.post('http://123.206.87.240:8002/qiumingshan/', data = ans) print(flag.text)实验吧 速度爆破: http://www.shiyanbar.com/ctf/1841
scapy
数据包完全是自己构造的,这其中的难处一是要清楚各层协议的字段、字段长度、字段是数值还是字符。
代码如下:
from scapy.all import * #数据包应用层数据部分 data='xiaoyu' #发送端IP地址10.0.3.83不是本机ip地址 目的端IP地址不详 传输层的TCP并未指明数据包类型:syn fin ack 窗口大小 数据包如果分片,要指明序号 pkt=IP(src='10.0.3.83',dst='10.0.3.88')/TCP(sport=12345,dport=5555)/data #间隔一秒发送一次 总共发送5次 发送网卡口:enp1s0 send(pkt,inter=1,count=5,iface="enp1s0")
optparse 处理命令行参数
让程序设计人员轻松设计出简单明了,易于使用,符合标准的Unix命令例程式的Python模块。生成使用和帮助信息
首先必须导入该类,并创建一个OptionParser对象,然后再使用parser.add_option(...)待定义命令行参数,及其帮助文档。
每个命令行参数就是由参数名字符串和参数属性组成的。如 -f 或者 file 分别是长短参数名:
parser.add_option("-f", "--file", ...)
将所有的命令行参数都定义好了的时候,我们需要调用parse_args()方法赖际熙add_option()函数依次传入的参数:
options,args = parser.parser_args()
options 是一个字典,其key字典中的关键字可能会是是我们所有的add_option()函数中的dest参数值,其对应的value值,是命令行输入的对应的add_option()函数的参数值。
args,它是一个由 positional arguments 组成的列表
threading多线程
threading模块是Python里面常用的线程模块,多线程处理任务对于提升效率非常重要,优点:同时利用多个cpu,能够同时进行多个操作
import time import threading def f0(): pass def f1(a1,a2): time.sleep(5) f0() '''下面代码是直接运行下去的,不会等待函数里面设定的sleep''' t= threading.Thread(target=f1,args=(111,112))#创建线程 t.setDaemon(True)#设置为后台线程,这里默认是False,设置为True之后则主线程不用等待子线程 t.start()#开启线程 t = threading.Thread(target=f1, args=(111, 112)) t.start() t = threading.Thread(target=f1, args=(111, 112)) t.start() #默认情况下程序会等线程全部执行完毕才停止的,不过可以设置更改为后台线程,使主线程不等待子线程,主线程结束则全部结束
OS
os 模块提供了非常丰富的方法用来处理文件和目录。
典型代码如下,打开local文件进行写入
file = open("local.txt","a") file.write(ip) file.write("\n") file.write(out)
paramiko远程控制
一个基于SSH用于连接远程服务器并执行相关操作(SSHClient和SFTPClinet,即一个是远程连接,一个是上传下载服务),使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,
fabric和ansible内部的远程管理就是使用的paramiko来现实。
下载安装:
pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto
pip3 install pycrypto
pip3 install paramiko
模块使用
import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='c1.salt.com', port=22, username='GSuser', password='123') # 执行命令 stdin, stdout, stderr = ssh.exec_command('ls') # 获取命令结果 result = stdout.read() # 关闭连接 ssh.close()
paramiko教程:https://www.cnblogs.com/lzc978/p/10978688.html