我正在尝试从Windows应用商店应用中的页面源获取链接。我正在使用HtmlAgilityPack,这是我的代码
HttpClient client = new HttpClient();
client.MaxResponseContentBufferSize = 256000;
client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0
(compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
string source = await client.GetStringAsync(url);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(source);
List<String> links = doc
.DocumentNode
.SelectNodes("//a[@href]")
.Select(node => node.Attributes["href"].Value)
.ToList();
我收到错误
类型'System.Xml.XPath.IXPathNavigable'在一个。中定义 未引用的程序集。您必须添加对程序集的引用 'System.Xml.XPath,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35' 在创建变量doc的位置。
但是当我从MicrosoftSDKs文件夹中添加对System.Xml.XPath的引用时,我正在
在模块mscorlib.dll
中找不到类型System.SystemException
如何解决?
答案 0 :(得分:0)
看看这篇简单的文章: C# Scraping
例如,这很简单:
using System.Diagnostics;
using System.Net;
class Program
{
static void Main()
{
// Scrape links from wikipedia.org
// 1.
// URL: http://en.wikipedia.org/wiki/Main_Page
WebClient w = new WebClient();
string s = w.DownloadString("http://en.wikipedia.org/wiki/Main_Page");
// 2.
foreach (LinkItem i in LinkFinder.Find(s))
{
Debug.WriteLine(i);
}
}
}
答案 1 :(得分:0)
我认为引用集会引入System.Xml.XPath
的建议是不合适的。当我编译你的代码时,我无法解析HttpClient。在我添加对System.Net.Http
的引用并在包含您的代码的文件顶部添加using System.Net.Http;
后,它会立即编译(好吧,一旦我定义,例如var url = "http://apps.microsoft.com/windows/en-us/app/appstudio-contoso-sample-app/748084e6-e1da-40d5-9571-35c750b26d5e";
,它就会编译)。