【发布时间】:2018-03-15 04:54:00
【问题描述】:
我正在尝试向https://sede.educacion.gob.es/publiventa/catalogo.action?cod=E 执行 GET 请求;使用 cod=E 参数,在浏览器中,网站会在“Materias de educación”下方打开一个菜单,但是当我使用 C# 执行请求时,该菜单没有加载,我需要它。这是我用来将 Html 读取为字符串以便稍后使用 HtmlAgilityPack 解析它的代码。
private string readHtml(string urlAddress)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.AutomaticDecompression = DecompressionMethods.GZip;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = null;
if (response.CharacterSet == null)
{
readStream = new StreamReader(receiveStream);
}
else
{
readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
}
string data = readStream.ReadToEnd();
response.Close();
readStream.Close();
return data;
}
return null;
}
【问题讨论】:
-
从提供的代码中正确读取方法中的 HTML 标记。您可能需要提供有关菜单未加载的更多详细信息。菜单 HTML 肯定在响应中。
-
你让它工作了吗?如果没有,我有一个可能的解决方案。告诉我。
-
@Nico 在我的问题中,我在“Materias de educación”下面提到了一个菜单,当我执行来自 C# 的请求时,我使用该菜单未显示的页面的 html 代码可视化字符串。感谢您尝试提供帮助
-
@Jimi 我还没有解决方案,我希望您与我分享可能的解决方案。谢谢
-
当然。我会写下我能想到的。没什么大不了的,但它可能会让你工作。