C# ASP.NET Agility Pack |如何解析网页。那就是获取post参数?

C# ASP.NET Agility Pack |如何解析网页。那就是获取post参数?,c#,.net,asp.net,html-agility-pack,C#,.net,Asp.net,Html Agility Pack,我想解析和使用POST参数的页面。就像这是我的场景。我必须解析一些搜索结果。但搜索参数在post正文中发送到该页面 要解析搜索结果,我必须在POST中将参数发送到该页面。我怎样才能用敏捷包做到这一点 请帮帮我。我认为这不是HTML agility pack的用途。它不是HTTP agility pack,它不解析任何HTTP请求。它只解析HTML输出(即响应,而不是请求) 您可以使用页面后面代码中的page.Request[]字典访问页面接收的POST参数 如果这不是你想要做的,你能澄清一下吗?

我想解析和使用POST参数的页面。就像这是我的场景。我必须解析一些搜索结果。但搜索参数在post正文中发送到该页面

要解析搜索结果,我必须在POST中将参数发送到该页面。我怎样才能用敏捷包做到这一点


请帮帮我。

我认为这不是HTML agility pack的用途。它不是HTTP agility pack,它不解析任何HTTP请求。它只解析HTML输出(即响应,而不是请求)

您可以使用页面后面代码中的
page.Request[]
字典访问页面接收的POST参数


如果这不是你想要做的,你能澄清一下吗?

使用网络客户端让帖子发送搜索页面需要的任何参数。使用Html敏捷包可以解析返回的Html

WebClient将具有搜索页面结果返回的html

大概是这样的:

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://exposureroom.com");
  request.Method = "POST";
  request.ContentType = "application/x-www-form-urlencoded";
  string formParameters = "name1=value1&name1=value2";
  byte[] requestBuffer = Encoding.ASCII.GetBytes(formParameters);
  var requestStream = request.GetRequestStream();
  requestStream.Write(requestBuffer, 0, requestBuffer.Length);
  HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  StreamReader reader = new StreamReader(response.GetResponseStream());
  string str = reader.ReadToEnd();

在您的情况下,字符串变量formparameters需要包含搜索页面所需的查询参数。然后,这些参数将以“POST”Http方法的形式发送到搜索页面。当然,url也应该更改为您的url。

是的,您可以使用HTML Agility Pack发布参数。看看下面的代码

BrowserSession b = new BrowserSession();
b.Get("http://www.skyline-eng.com/");
b.FormElements["navigationTypeID"] = rblCategory.SelectedItem.Value;
b.FormElements["navigationSeriesID"] = boxItem.Value;
HtmlDocument docSkyLine = b.Post("http://www.skyline-eng.com/");

这里navigationTypeID和navigationSeriesID是post参数。像这样使用,并继续使用伟大的工具HTMLAgility Pack解析数据。

如果有任何答案解决了您的问题,请将相关答案标记为答案