python学习第一次

时间:2022-11-26 20:57:50

一,安装python

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

我下载的是最新的:

自定义安装到:F:\software\python3.7.2

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

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

二,安装pymysql

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

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

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:\software\python3.7.2\Lib\site-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秒轮询一次接口,成功失败,在页面进行显示。