zoukankan      html  css  js  c++  java
  • python学习第一次

    一,安装python

    官网下载地址:https://www.python.org/downloads/windows/

    我下载的是最新的:

    自定义安装到:F:softwarepython3.7.2

    配置环境变量,随便是用户path或者系统path,添加一个,输入:F:softwarepython3.7.2

    完成标志,cmd进一个文件下,输入:python   ,出现执行环境就ok。

    二,安装pymysql

    可以参见博客:https://blog.csdn.net/mingyuli/article/details/79734393

    步骤一:在网址:https://github.com/PyMySQL/PyMySQL  下载zip包,PyMySQL-master.zip,解压到F:softwarepython3.7.2Scripts

    Scripts目录下,

    步骤二:输入命令:pip install pymysql

    提示:Successfully installed pymysql-0.9.3  则成功了。

    随机一个文件,cmd进去,输入:python 进入执行环境,再输入:import pymysql  没报错,说明pymysql安装成功。

    三,下载mitmproxy

    下载mitmproxy-1.0.2-windows.zip   这个zip包,将里面的文件:mitmdump.exe  和   mitmweb.exe 放到F:softwarepython3.7.2Libsite-packages

    即python的lib的site-packages文件夹下,将test.py也放到此目录下。因为放这里,才能在脚本里找到pymysql模块。别的地方运行 mitmdump -s test.py 会报错,import pymysql

    的pymysql找不到。

    四,双击site-packages文件夹下的mitmweb.exe,会出现一个网页,地址是:http://127.0.0.1:8081/#/flows    。

    五,手机连代理,你手机输入你电脑的ip,端口8080,安装证书,在你手机浏览器输入网址:http://mitm.it/

    会出现,四个大图标,分别是:Apple,Windows,Android,Other,然后我选择Apple,允许,安装,出现,已验证。完成。

    六,在site-packages文件下cmd进入,输入:mitmdump -s test.py

    完成。在黑窗口能看见你代理的url,状态等抓的信息。

    七 test.py抓包脚本

    import json
    import pymysql
    import time
    from urllib.parse import urlparse
    import json
    
    def save_to_mysql(data):
        res=urlparse(data.request.url)
        method = 1 if data.request.method=='GET' else 2
        ajaxdata = json.dumps(data.response.text)
        #url=res.path+'?'+res.params+res.query
        yuming=res.scheme+'://'+res.netloc
        #除去域名以外的完整url
        url=data.request.url.split(yuming)[1]
        #这是几个壳的生产域名
        if yuming in '域名1,域名2,域名3,域名4,域名5,域名6':
            try:
                conn = pymysql.connect(host='a.b.c.d', port=3306, user='aaaa', password='aaaa', db='aaaa', charset="utf8")
                #获取会话指针
                cursor = conn.cursor()
                insert_sql =  "INSERT INTO interf(url,res,method) VALUES(%s,%s,%s)"
                print('33333333333333333333333333333333',url)
                #执行SQL语句
                cursor.execute(insert_sql, (url,ajaxdata,method))
    
                #提交
                conn.commit()
    
                #关闭
                cursor.close()
                conn.close()
            except Exception as e:
                print('wrong' + e)
    
    
    def response(flow):
        save_to_mysql(flow)

    这段代码的意思是:抓取你手机正在访问的信息,如果域名在这个域名范围中,则将这个url的数据存到MySql中。interf表三个字段:url,res,method

    八 编写一个node服务,查询出所有url

    sql语句:select * from interf

     九 pm2部署

    十轮询  写一个静态页面,执行node接口查出所有url,然后每隔5秒轮询一次接口,成功失败,在页面进行显示。

  • 相关阅读:
    获取指定路径下的文件夹及文件名称
    Unity3D两种方式实现游戏视频播放
    Unity Steam_VR Camera
    Unity Steam_VR 开发工具插件 VRTK自带案例分析(第一部分)
    Unity Steam_VR 开发工具插件 VRTK自带案例分析(第二部分)
    weblogic安装注意事项_linux
    从英文变形规则计算到Restful Api设计
    如何正确使用Cocoapods
    clang -rewrite-objc的使用点滴
    kubernetes听云实战发布版
  • 原文地址:https://www.cnblogs.com/wulinzi/p/10306465.html
Copyright © 2011-2022 走看看