吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 969|回复: 5
收起左侧

[其他原创] 分享一个URL参数对比的fiddler脚本源码

  [复制链接]
sgbyg 发表于 2024-8-22 22:55
本帖最后由 sgbyg 于 2024-8-22 22:56 编辑

经常爬虫的朋友都知道,
有时候找接口参数变化
用肉眼对比很麻烦
所以写了一个实时高亮对比的工具
QQ20240822-222826.png

fiddler版本实现
QQ20240822-223449.png

以下是源码


[C#] 纯文本查看 复制代码
// 在 FiddlerScript 的自定义脚本中使用的代码
public static class URLComparer
{
    // 用于存储上一个请求的 URL
    private static string lastUrl = string.Empty;

    // 比较两个 URL 并高亮显示差异
    private static string HighlightDifferences(string url1, string url2)
    {
        var highlightedUrl1 = new System.Text.StringBuilder();
        var highlightedUrl2 = new System.Text.StringBuilder();

        // 使用 SequenceMatcher 进行差异比较
        var diff = new System.Collections.Generic.List<string>();

        for (int i = 0; i < url1.Length || i < url2.Length; i++)
        {
            if (i >= url1.Length)
            {
                highlightedUrl2.Append($"<span style='color:red;'>{url2[i]}</span>");
            }
            else if (i >= url2.Length)
            {
                highlightedUrl1.Append($"<span style='color:red;'>{url1[i]}</span>");
            }
            else if (url1[i] != url2[i])
            {
                highlightedUrl1.Append($"<span style='color:red;'>{url1[i]}</span>");
                highlightedUrl2.Append($"<span style='color:red;'>{url2[i]}</span>");
            }
            else
            {
                highlightedUrl1.Append(url1[i]);
                highlightedUrl2.Append(url2[i]);
            }
        }

        return $"<div>URL1: {highlightedUrl1.ToString()}</div><div>URL2: {highlightedUrl2.ToString()}</div>";
    }

    // 处理请求的逻辑
    public static void OnBeforeRequest(Session oSession)
    {
        if (oSession.uriContains("feeds?"))
        {
            // 提取 URL 查询参数
            var currentUrl = oSession.fullUrl;
            var queryParams = new System.Collections.Generic.Dictionary<string, string>();

            var uri = new System.Uri(currentUrl);
            var query = System.Web.HttpUtility.ParseQueryString(uri.Query);

            foreach (string key in query.Keys)
            {
                queryParams[key] = query[key];
            }

            // 格式化查询参数并构建新 URL
            var newQueryString = System.Web.HttpUtility.ParseQueryString(string.Empty);
            foreach (var pair in queryParams)
            {
                newQueryString[pair.Key] = pair.Value;
            }
            var newUrl = uri.GetLeftPart(System.UriPartial.Path) + "?" + newQueryString.ToString();

            // 比较并高亮显示差异
            if (!string.IsNullOrEmpty(lastUrl))
            {
                string result = HighlightDifferences(lastUrl, newUrl);
                // 输出到 Fiddler 的日志中
                FiddlerApplication.Log.LogString(result);
            }

            // 更新 lastUrl
            lastUrl = newUrl;
        }
    }
}


后续彩蛋


一键生成代码
QQ截图20240803134028.png

代.理池重发
QQ20240822-225220.png


免费评分

参与人数 2吾爱币 +7 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lccccccc + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xixicoco 发表于 2024-8-23 00:51
支持楼主的系列贴子
n1ghtc4t 发表于 2024-8-23 11:12
风随心起 发表于 2024-8-23 14:19
15090878185 发表于 2024-8-29 12:38

支持楼主的系列贴子
jayqqai 发表于 2024-9-9 11:02
这个怎么用啊?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-14 05:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表