C# 如何使用c获取元素#

C# 如何使用c获取元素#,c#,html,web-scraping,C#,Html,Web Scraping,我是C#新手,我正在尝试使用webBrowser从网站访问元素。我想知道如何从站点获取“开发者”字符串: 标题:**开发商** 我试图使用webBrowser1.Document.GetElementById(“title”),但我不知道如何从这里继续下去 谢谢:)您可以使用 然后在文件中查找标题:**Developers**,然后省略“Developers”旁边的所有内容。您可以使用HtmlAgilityPack(如Giannis所述)。使用web浏览器控件无法完成此任务: HtmlAgi

我是C#新手,我正在尝试使用webBrowser从网站访问元素。我想知道如何从站点获取“开发者”字符串:


标题:**开发商**

我试图使用
webBrowser1.Document.GetElementById(“title”)
,但我不知道如何从这里继续下去


谢谢:)

您可以使用


然后在文件中查找标题:**Developers**,然后省略“Developers”旁边的所有内容。

您可以使用HtmlAgilityPack(如Giannis所述)。使用web浏览器控件无法完成此任务:

HtmlAgilityPack.HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("http://www.google.com");

var el = doc.GetElementbyId("title");
string s = el.InnerHtml; // get the : <b>Title:</b> **Developers**
您还可以通过删除相应的节点来删除
标题:

el.SelectSingleNode("//b").Remove();
string s = el.InnerText; // get the : **Developers**

如果出于某种原因,您希望坚持使用web浏览器控件,我认为您可以这样做:

var el = webBrowser1.Document.GetElementById("title");
string s = el.InnerText; // get the : Title: **Developers**

更新 请注意,上面的
//b
是XPath语法,您可能会感兴趣来学习:


HtmlAgilityPack
CsQuery
是许多人在.NET中使用HTML页面的方式,我也推荐他们

但是,如果您的任务仅限于此简单需求,并且您有一个有效的XHTML标记(如您发布的标记示例),那么您可以将其视为XML。意味着您可以使用.NET本机API,如
XDocument
XmlDocument
来解析HTML并执行XPath查询以从中获取特定部分,例如:

var xml = @"<div id=""title"" style=""display: block;""> <b>Title:</b> Developers</div>";
//or according to your code snippet, you may be able to do as follow :
//var xml = webBrowser1.Document.GetElementById("title").OuterHtml;

var doc = new XmlDocument();
doc.LoadXml(xml);
var text = doc.DocumentElement.SelectSingleNode("//div/b/following-sibling::text()");
Console.WriteLine(text.InnerText);
//above prints " Developers"
var xml=@“Title:Developers”;
//或者根据您的代码片段,您可以执行以下操作:
//var xml=webBrowser1.Document.GetElementById(“title”).OuterHtml;
var doc=新的XmlDocument();
doc.LoadXml(xml);
var text=doc.DocumentElement.SelectSingleNode(“//div/b/以下同级::text()”;
Console.WriteLine(text.InnerText);
//上面是“开发者”

在XPath上面,选择
节点旁边的文本节点(
“开发者”
)。

看看。。。或者,如果您知道jQueryside注释,
el.InnerText
返回
中所有文本节点的连接文本,在本例中为:“Title:Developers”@har07是的,我刚刚在查看答案时更正了它。:)
var xml = @"<div id=""title"" style=""display: block;""> <b>Title:</b> Developers</div>";
//or according to your code snippet, you may be able to do as follow :
//var xml = webBrowser1.Document.GetElementById("title").OuterHtml;

var doc = new XmlDocument();
doc.LoadXml(xml);
var text = doc.DocumentElement.SelectSingleNode("//div/b/following-sibling::text()");
Console.WriteLine(text.InnerText);
//above prints " Developers"