zoukankan      html  css  js  c++  java
  • 渗透利器-kali工具 (第四章-4) 学习python强大的第三方库

    本文内容:

    • 了解Python的第三方库
    • 安装第三方库
    • 使用第三方库

    Python第三方库的学习

    1,了解Python的第三方库:

      如果用手机来比喻变成语言,那么python是一款智能机,正如海量的手机应用处在IOS,Andriid平台上,同样有各种各样的第三方库为python开发者提供了极大的便利。

      当你想搭建网站时可以选择功能全面的Django,轻量Flask等Web框架;

      当你想写一个小游戏的时候,可以使用pycame框架;

      当你想做一个爬虫时,可以使用scrapy;

      当你想做数据统计分析的时候,可以使用pandas。

      数据框架...这么多丰富资源可以帮助我们高校快捷地做到想做的事,就不需要在重新造轮子了。

      参考网站:

        https://docs.python.org/zh-cn/3.7/library/index.html

        https://zhuanlan.zhihu.com/p/27350980

      快速找到Python第三方库:

        https://awesome-python.com

        python官方手册

        浏览器搜索

    2,安装第三方库:

      1.最简单的方式:[在PyCharm中安装]

        1.在PyCharm的菜单中选择:File->Default Settings

        2.搜索project Interpreter 选择当前版本[Python环境] 点击"+"添加库。

        3.输入库的名称  勾选并点击Install Package。

      2.最直接的方式:在终端/命令行中安全

        安装pip,

        在pip3.4之后,安装好python环境就可以直接支持pip,可以在终端/命令行输入这一句检查一下:pip --version

        如果显示pip的版本,就说明pip已经成功安装,如果发现没有安装pip的话,各系统的方法不同:

          1.Windows用户,请查看:https://www.cnblogs.com/baiyuer/p/9606773.html

          2.Mac用户,请查看:https://www.jianshu.com/p/263b9107a047

          3.Linxu用户,请查看:https://www.cnblogs.com/zhongyehai/p/10619917.html

        使用pip安装库:

          在安装好pip之后,以后安装库,只需要在命令行输入:[如果你想安装到python2中,需要把pip3换成pip]

            如:pip install PackageName

          如果你安装了Python2和3两种版本,可能会遇到安装目录的问题,可以换成:[如果你想安装到python2中,需要把pip3换成pip]

            如:Python3 -m pip install PackageName

          如果遇到权限问题:可以输入:sudo pip install PackageName 

          安装成功后会提示:Successfully installed PackageName

        pip常用的指令:

          pip install --upgrade pip   升级pip如果使用报错,可以在后加上-i 然后python pip源

          pip uninstall flask     卸载库

          pip list          查看已安装库

          异常情况:安装某些库的时候可能会遇到所依赖的另一个库还没安装,导致无法安装成功的情况,这时候的处理原则就是缺啥补啥。

          比如:

            提示缺少:service_identity

            解决方法:pip install service_identit

      3.最原始的方式:[手动安装]

        为了应对异常情况,在提供一种最原始的方法:手动安装,往往是Windows用户需要用到这种方法:

        进入pypi.python.org ,搜索你需要安装的库的名字,这时候有3种可能:

        1.exe文件,这种最方便,下载满足你的电脑系统和python环境对应的exe,再依次next就可以安装了

        2.whl类文件,好处在于可以自动安装依赖的包。

        3.是源码,大概都是zip、tar.zip、tar.ba2格式的压缩包,这个方法要求用户已经安装了这个包所依赖的其他包。

        例如:

          pandas依赖于numpy,你如果不安装numpy,这个方法是无法成功安装pandas的,如果没有前两种类型的文件,那只能用这个了。

        1、如果下载的是.whl类文件,下面是安装方法:

          到命令行输入:pip install wheel 等待执行完成,不能报错[python2要换成pip]

          从资源管理器中确认你下载的.whl类文件的路径,然后在命令行输入:cd  C:down load [此处需要改为你的路径,路径的含义就是文件所在文件夹,不包含这个文件名字本身]。

          然后在命令行继续输入:pip install xxx.whl  [xxx.whl是你下载的文件的完整文件名]

        2.、如果你选择了下载源码压缩包,下面是安装方法:

          解压包,进入解压好的文件,通常会看一个setup.py的文件,从资源管理器中确认你下载的文件路径,打开命令行[cmd]输入

          cd  C:down load [此处需要改为你的路径,路径的含义就是文件所在文件夹,不包含这个文件名字本身]。

          然后在命令行中继续输入:

            python 3 setup.py install这个命令,就能把这个第三方库安装到系统中,也就是你的Python路径,

            Windows大概是在C:python3.5 [或2.7]Libsite=packages

          想卸载库的时候,找到Python路径,进入site-packages文件夹,在里面删掉库文件就可以了。

    3,使用第三方库:

      在pycharm中输入库名字,就会自动提示补全。

      1.os模块:[操作 系统接口模块]

        在自动化测试中,经常需要查找操作文件,比如:

          查找配置文件[从而读取配置文件的信息]

          查找测试报告[从而发送测试报告邮件]

          经常对大量文件和大量路径进行操作,这就依赖于os模块。

        当前路径及路径下的文件:     

          os.getcwd() :查看当前所在路径    绝对路径
          os.listdir(path) :列举目录下的所有文件
          os.path.abspath(path) :返回path的绝对路径
          os.path.getmtime(path) :返回文件或文件夹最后修改的时间
          os.path.getatime(path) :返回文件或文件夹最后访问的时间
          os.path.getctime(path) :返回文件或文件夹创建的时间
          os.path.getsize(path) :返回文件或文件夹的大小,如果是空文件夹返回0
          os.path.exists(path) :查看文件是否存在,存在True,否则返回False
          注意:path是查看当前路径,所在变量,存在True,否则返回Flase
       举例:
          import os
          path=os.getcwd()
          print(path) 查看当前所在路径 绝对路径
          print(os.listdir(path)) 列举目录下的所有文件
          print(os.path.abspath(path)) 返回path的绝对路径
          print(os.path.getmtime(path)) 返回文件或文件夹最后修改的时间
          print(os.path.getatime(path)) 返回文件或文件夹最后访问的时间
          print(os.path.getctime(path)) 返回文件或文件夹创建的时间

       2.re模块:

        python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,它对所有的语言都通用。

        注意:

          re模块是Python独有的,正则表达式所有变成语言都可以使用。

          re模块、正则表达式是对字符串进行操作,因为re模块中的方法大都借助于正则表达式。

        如果经常需要用到真个表达式,就可以先存在来,返回一个列表。

          pattern=re.compile(‘alex') 

          print(pattern.findall('alex is alex alex'))

            findall:从左往右查找满足条件的字符,返回一个列表。

          print(pattern.findall('alexasdfsadfsadfasdfasdfasfd is alex alex'))

        举例:

          例1:
            import re
            ppx=re.compile(‘is')        存储一个方法
            tmp_a = 'you is name'    
            pph = ppx.findall(tmp_a)    用这个方法进行匹配
            print(pph)
          例2:
            import re
            a = '123 675 ddd % you is name'
            print(re.findall('w',a))            匹配所有字母、下划线、数字
            print(re.findall('W',a))            匹配所有非字母、下划线、数字
            print(re.findall('^ac',a))            从开头匹配字符串    一次
            print(re.findall('an$',a))            从结尾匹配字符串
            print(re.findall('a.*c',a123c))        从开头匹配到结尾

       3.requests模块:

        requests是用于Python语言编写,基于urllib,采用Apche2 Licensed开源协议的HTTP库它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求,Requests的哲学事宜PEP20的习语为中心开发的,所以它比urllib更加pythoner。

        更重要的一点是它支持Python3

        举例:

          import requests模块

          payload = {'key1':'value1','key2':'value2'}

          r = requests.get('https://www.baidu.com',params=payload)

      4.线程模块:[threading和thread]

        在Python3中,通过threading模块提供线程的功能。

        原来的thread模块已经废弃,但是threading模块中有个Thread类是模块中最主要的线程类,一定要记住!!!!

        threading提供了一些使用的方法和属性:

        例如:

          theading模块包含以下的类:

            Thread:基本线程类

            Lock:互斥锁

            RLock:可重入锁,使单一进程再次获得已持有的锁[递归锁]

            Condition:条件锁,使得一个线程等待另一个线程满足特定条件,比如改变状态或某个值。

            Semaphore:信号锁,为线程间共享的有限资源提供一个“”计算器“”,如果没有可用资源则会被阻塞。

            Event:事件锁,任意数量的线程等待某个事件的发生,在该事件发生后所有线程被激活。

            Timer:一种计时器

            Barrier:python3.2新增的“阻碍”类,必须叨叨指定数量的线程后才可以继续执行。

        想创建一个多线程的程序:

          1.使用thread模块创建线程

          2.使用threading模块

      5.bs4:

        简单来说,BeautifulSoup就是Python的一个HTML或XML的解析库,我们可以用它来方便地从网页中提取数据,官方的解释如下:

        BeautifulSoup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。BeautifulSoup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时你仅仅需要说明一下原始编码方式就可以了。BeautifulSoup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。

        所以说,利用它我们可以省去很多繁琐的提取工作,提高解析效率。

        基本使用:https://blog.csdn.net/keer1303242749/article/details/86028045

      6.sys和getopt:

        Python提供了getopt模块来获取命令行参数。

        Python中也可以所用sys的sys.argv来获取命令行参数:
          sys.argv是命令行参数列表。

          len(sys.argv)是命令行参数个数。

        举例:

          import sys

          a = sys.argv[1]

          b = sys.argv[2]

          print(int(a)+int (b))

        比如:

          使用一些脚本的时候,txt.py "https://www.baidu.com"

          txt.py 就是0

          url 就是1

          接收参数,去脚本代码中运行

        python3命令行参数:https://www.runoob.com/python3/python3-command-line-arguments.html

  • 相关阅读:
    只有APE文件的情况下自己制作CUE文件的方法转,经过本人验证真实可靠good!20101128终极解决版
    无法加载登录用户界面DLL MyGina.dll 解决
    sql2000_简单入门,以前的笔记
    dell_又一例:raid的变化(断电后,可能没有电池造成)
    MSSQL使用帮助租赁空间后的数据库链接
    PS创建动作并利用批处理命令自动处理多图片转
    office2003修复安装,缺少SKU011.CAB文件_解决
    使用双wan口的企业/校园网解决方案初探
    我机也中病毒MS Driver Management Service(原创)
    win2003开机有问题:Windows 无法查询 {7B849a69220F451EB3FE2CB811AF94AE} 的 DllName 注册表项,它将不会被加载。最有可能的原因是注册错误。
  • 原文地址:https://www.cnblogs.com/xz25/p/12874000.html
Copyright © 2011-2022 走看看