当前位置: 首页 > 知识库问答 >
问题:

python3.x - python mitmproxy高级爬虫问题,求解决?

茅才
2024-03-21

我要把downstream_port传到tiktok_response_interceptor.py脚本,

def start_mitmdump(upstream_address, downstream_port):    mitmdump(args=[        "-q", "-s", os.path.join('tiktok', 'tiktok_response_interceptor.py'),        "--mode", f"upstream:{upstream_address}",        "-p", downstream_port        # "--upstream-auth", "UPSTREAM_USR_1:UPSTREAM_PASSW_1"    ])

我目前的方法是
tiktok_response_interceptor-9092.py
tiktok_response_interceptor-9093.py
tiktok_response_interceptor-9094.py

然后文件中也写死

这大概不是最好的方法

共有1个答案

谭昕
2024-03-21

你正在使用mitmproxy的mitmdump工具,并试图将downstream_port参数传递给你的tiktok_response_interceptor.py脚本。在你的方法中,你为每个不同的downstream_port创建了不同的脚本文件,这并不是一种可扩展或可维护的方法。

一种更好的方法是使用命令行参数或环境变量来动态地将downstream_port传递给你的脚本。这样,你就可以在启动mitmdump时使用不同的端口,而无需为每个端口创建新的脚本文件。

下面是一个使用命令行参数的例子:

tiktok_response_interceptor.py中,你可以使用sys.argv来获取命令行参数:

import sysdef main(downstream_port):    # 你的代码,使用downstream_port    print(f"拦截器正在监听端口: {downstream_port}")if __name__ == "__main__":    if len(sys.argv) != 2:        print("Usage: python tiktok_response_interceptor.py <downstream_port>")        sys.exit(1)    downstream_port = int(sys.argv[1])    main(downstream_port)

然后,在启动mitmdump时,你可以将downstream_port作为命令行参数传递给你的脚本:

def start_mitmdump(upstream_address, downstream_port):    mitmdump(args=[        "-q", "-s", os.path.join('tiktok', 'tiktok_response_interceptor.py'),        "--mode", f"upstream:{upstream_address}",        "-p", downstream_port,        f"--add-option", f"script_args={downstream_port}"    ])

注意,--add-optionscript_args选项用于将参数传递给mitmproxy的脚本。mitmproxy会将这个参数作为一个元组传递给脚本的__init__函数,所以你可能需要稍微修改你的脚本来处理这个元组。

这样,你就可以使用相同的脚本文件,通过改变命令行参数来监听不同的downstream_port了。

python start_mitmdump.py upstream_address 9092python start_mitmdump.py upstream_address 9093python start_mitmdump.py upstream_address 9094

这样,你就不需要为每个不同的downstream_port创建新的脚本文件了。

 类似资料:
  • 原始content: decode('utf-8')报错: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe8 in position 1: invalid continuation byte decode('utf-8', 'ignore'): decode('gbk', 'ignore'): decode('utf-16', 'ig

  • 本文向大家介绍Python3.x爬虫下载网页图片的实例讲解,包括了Python3.x爬虫下载网页图片的实例讲解的使用技巧和注意事项,需要的朋友参考一下 一、选取网址进行爬虫 本次我们选取pixabay图片网站 二、选择图片右键选择查看元素来寻找图片链接的规则 通过查看多个图片路径我们发现取src路径都含有 https://cdn.pixabay.com/photo/ 公共部分且图片格式都为.jpg

  • python爬虫时显示 [WinError 10061] 由于目标计算机积极拒绝,无法连接。 import csv import random import time import pandas as pd import requests from bs4 import BeautifulSoup import matplotlib.pyplot as plt plt.rcParams["font

  • 本文向大家介绍详解Python爬虫爬取博客园问题列表所有的问题,包括了详解Python爬虫爬取博客园问题列表所有的问题的使用技巧和注意事项,需要的朋友参考一下 一.准备工作 首先,本文使用的技术为 python+requests+bs4,没有了解过可以先去了解一下。 我们的需求是将博客园问题列表中的所有问题的题目爬取下来。   二.分析: 首先博客园问题列表页面右键点击检查 通过Element查找

  • 以下是我这么做的原因,真正的问题在分隔线下面 最终目的是求空间中三个点在某个面上的投影匹配某个三角形 左边的紫色三角形只是为了让大家理解它的形状,实际是不会贴合到绿色三角形上的 也就是求黑色的这个面的法向,用来设置摄像机视角的 黑色的三角形是最终位置,辅助理解的,本质上是由紫色三角形变换得到的(它们形状一致,大小不一定一样) 所有已知信息都在图中。 我自己得出的解法是重叠o0与o(作为原点),匹配

  • 本文向大家介绍python3之微信文章爬虫实例讲解,包括了python3之微信文章爬虫实例讲解的使用技巧和注意事项,需要的朋友参考一下 前提: python3.4 windows 作用:通过搜狗的微信搜索接口http://weixin.sogou.com/来搜索相关微信文章,并将标题及相关链接导入Excel表格中 说明:需xlsxwriter模块,另程序编写时间为2017/7/11,以免之后程序无