C# webclient HTML功能包web解析
C#+网络客户端+HTML功能包+网络解析 我想浏览一下这个作业列表,但我无法解析这些链接,因为它会发生变化 例如,当我看到浏览器()中的链接时 当我使用webclient和htmlagilitypack解析它时,我得到了更改后的链接 我必须在webclient上进行设置吗?要包含会话或脚本 这是我的密码C# webclient HTML功能包web解析,c#,.net,webclient,html-agility-pack,C#,.net,Webclient,Html Agility Pack,C#+网络客户端+HTML功能包+网络解析 我想浏览一下这个作业列表,但我无法解析这些链接,因为它会发生变化 例如,当我看到浏览器()中的链接时 当我使用webclient和htmlagilitypack解析它时,我得到了更改后的链接 我必须在webclient上进行设置吗?要包含会话或脚本 这是我的密码 private void getLinks() { StreamReader sr = new StreamReader("categories.txt"); while(!s
private void getLinks()
{
StreamReader sr = new StreamReader("categories.txt");
while(!sr.EndOfStream)
{
string url = sr.ReadLine();
WebClient wc = new WebClient();
string source = wc.DownloadString(url);
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(source);
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes(".//a[@class='internerLink primaerElement']");
foreach (HtmlNode node in nodes)
{
Console.WriteLine("http://jobboerse.arbeitsagentur.de" + node.Attributes["href"].Value);
}
}
sr.Close();
}
您可以尝试WebBrowser类()并使用其DOM检索链接
mshtml.IHTMLDocument2 htmlDoc = webBrowser.Document as mshtml.IHTMLDocument2;
// do something like find button and click
htmlDoc.all.item("testBtn").click();
你的问题不清楚,你能澄清一下HtmlAgilityPack与你的问题有什么关系吗?我实际上是在解析页面并获取链接,就像上面的例子(较长的例子)。但是解析得到的链接与我在chrome上“检查元素”时显示的完全不同。与上面的示例不同,我得到的链接包含“session id=”…我在我的视图源中没有看到sessionId,但我没有登录。这有关系吗?为什么获取会话Id很重要?可能有些链接是由JavaScript生成的。该脚本仅在浏览器内部运行。WebClient无法检索它们,因为它们不存在。是的,这是关于javascript的内容,但如何解析页面以获取我认为由javascript生成的链接。如果webclient无法检索它,有什么方法吗?