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

 

posted @ 2020-02-05 17:13  暮日温柔  阅读(...)  评论(...编辑  收藏