控制台获取html数据的⽅法,使⽤C#控制台应⽤程序从⽹站上
抓取数据(⽰例代码)...
我正在努⼒学习西班⽛语并制作⼀些闪存卡(供我个⼈使⽤)以帮助我学习动词。
这是⼀个例⼦,page example。所以在页⾯顶部附近你会看到过去的分词:bloqueado和gerund:bloqueando。我希望在我的代码中获取这两个值并⽤于我的闪存卡。
如果可以的话,我将使⽤C#控制台应⽤程序。我知道从⽹站上抓取数据并不理想,但这是⼀次性的。
关于如何开始这样的事情和避免陷阱的任何指导将是⾮常有帮助的!
答案
我知道这不是⼀个确切的答案,但这是我建议的过程。
/software/wget/并将⽹站镜像到⼀个⽂件夹。 Wget是⼀个⽹络蜘蛛,它将跟随⽹站上的链接,直到它下载了所有内容。您必须使⽤⼏个不同的参数运⾏它,直到到所需的正确设置。
使⽤C#运⾏⽂件夹中的每个⽂件,并从每个⽂件中的中提取单词。您可以选择是将它们输出到控制台
还是将它们存储在数据库或平⾯⽂件中。
理论上应该这么简单。
另⼀答案
使⽤SGMLReader。 SGMLReader是⼀个多功能且强⼤的组件,可以将HTML流式传输到XMLReader:
XmlDocument FromHtml(TextReader reader) {
// setup SgmlReader
Sgml.SgmlReader sgmlReader = new Sgml.SgmlReader();
sgmlReader.DocType = "HTML";
sgmlReader.WhitespaceHandling = WhitespaceHandling.All;
sgmlReader.CaseFolding = Sgml.CaseFolding.ToLower;
sgmlReader.InputStream = reader;
// create document
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.XmlResolver = null;
doc.Load(sgmlReader);
return doc;
}
抽象类的使用您可以看到⾸先需要创建TextReader。实际上这是⼀个StreamReader,因为TextReader是⼀个抽象类。
然后在其上创建XMLDocument。⼀旦进⼊XMLDocument,就可以使⽤XMLDocument⽀持的各种⽅法来隔离和提取所需的节点。我会让你去探索它的那个⽅⾯。
您可以尝试使⽤XDocument类,因为它⽐XMLDocument更容易处理,特别是如果您是新⼿。它还⽀
持LINQ。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论