如何在不更改的情况下保存Captcha图像
本文关键字:情况下 保存 Captcha 图像 | 更新日期: 2023-09-27 18:30:13
我希望自动登录到我的多个帐户,以查看数据并通过电子邮件发送给自己。问题出在队长身上。我以前试过绕过他们,但失败了。
有人能为我确认这一步吗?我在任何地方都找不到裁判。如果我使用c#制作一个web请求-我可以读取captcha等的URL,但在保存它时,它似乎会更改图像的动态值。我可以将图像发送到Deathbycapture等,但如果不重新生成(即使请求没有加载到浏览器中),我就无法从网络请求中物理保存图像,只需调用url,它似乎就会生成一个新图像。
任何想法。
找到了答案。
问题是,当我用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请求相同的方式生成