如何在不更改的情况下保存Captcha图像

本文关键字:情况下 保存 Captcha 图像 | 更新日期: 2023-09-27 18:30:13

我希望自动登录到我的多个帐户,以查看数据并通过电子邮件发送给自己。问题出在队长身上。我以前试过绕过他们,但失败了。

有人能为我确认这一步吗?我在任何地方都找不到裁判。如果我使用c#制作一个web请求-我可以读取captcha等的URL,但在保存它时,它似乎会更改图像的动态值。我可以将图像发送到Deathbycapture等,但如果不重新生成(即使请求没有加载到浏览器中),我就无法从网络请求中物理保存图像,只需调用url,它似乎就会生成一个新图像。

任何想法。

如何在不更改的情况下保存Captcha图像

找到了答案。

问题是,当我用c#调用URL时,它生成了一个非常简单的captcha,与网站在浏览器中显示的内容完全不同。这是因为我对captcha url的所有调用都没有排除我在网站上正常使用的cookie等——这似乎产生了很大的差异:

public Image GetImage(string url)
    {
        HttpWebRequest request = GetWebRequest(url);
        var responseData = "";
        if (request == null)
            return null;
        request.Method = "GET";
        request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
        request.ContentType = "application/x-www-form-urlencoded";
        request.CookieContainer = cookieContainer;
        request.UserAgent = RefreshUserAgent();
        request.KeepAlive = true;
        request.AllowAutoRedirect = _allowAutoRedirect;
        request.Referer = _referer;
        request.Timeout = TimeoutInterval;
        //Decode Response
        request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        try
        {
            var response = (HttpWebResponse)request.GetResponse();
            response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);
            return Image.FromStream(response.GetResponseStream());
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        return null;
    }

现在更新了我的图像提取代码,以与我的Get/Post请求相同的方式生成