gpt4 book ai didi

C# 控制台/服务器访问网站

转载 作者:行者123 更新时间:2023-11-30 17:13:18 27 4
gpt4 key购买 nike

我正在开发一个 C# 项目,我需要从没有 API 或 Web 服务的安全网站获取数据。我的计划是登录,访问我需要的页面,并解析 HTML 以获取记录到数据库所需的数据位。现在我正在使用控制台应用程序进行测试,但最终这将转换为 Azure 服务总线应用程序。

为了进行任何操作,您必须登录他们的 login.cfm 页面,这意味着我需要在页面上加载用户名和密码输入控件,然后单击提交按钮。然后导航到我需要解析的页面。

由于我没有“浏览器”来解析控件,因此我尝试使用各种 C# .NET 类来访问该页面,设置用户名和密码,然后单击“提交”,但似乎没有任何效果。

我可以查看任何为此类项目设计的示例,或者我应该查看的 .NET 类吗?

谢谢!

最佳答案

使用System.Net中的WebClient类

为了保持 session cookie,您必须创建一个自定义 WebClient 类。

#region webclient with cookies
public class WebClientX : WebClient
{
public CookieContainer cookies = new CookieContainer();
protected override WebRequest GetWebRequest(Uri location)
{
WebRequest req = base.GetWebRequest(location);
if (req is HttpWebRequest)
(req as HttpWebRequest).CookieContainer = cookies;
return req;
}
protected override WebResponse GetWebResponse(WebRequest request)
{
WebResponse res = base.GetWebResponse(request);
if (res is HttpWebResponse)
cookies.Add((res as HttpWebResponse).Cookies);
return res;
}
}
#endregion

使用 FireBug 等浏览器插件或 Chrome 内置的开发工具来获取提交表单时发送的 HTTP POST 数据。使用 WebClientX 类发送这些 POST 并解析响应 HTML。

当您已经知道格式时,解析 HTML 的最快方法是使用简单的 Regex.Match。因此,您可以使用开发工具在浏览器中完成操作来记录您的 POST、URL 和 HTML 内容,然后使用 WebClientX 执行相同的任务。

关于C# 控制台/服务器访问网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9888809/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com