控制台获取html数据的方法,使用C#控制台应用程序从网站上抓取数据(示例代码)...

我正在努力学习西班牙语并制作一些闪存卡(供我个人使用)以帮助我学习动词。

这是一个例子,page example。所以在页面顶部附近你会看到过去的分词:bloqueado和gerund:bloqueando。我希望在我的代码中获取这两个值并用于我的闪存卡。

如果可以的话,我将使用C#控制台应用程序。我知道从网站上抓取数据并不理想,但这是一次性的。

关于如何开始这样的事情和避免陷阱的任何指导将是非常有帮助的!

答案

我知道这不是一个确切的答案,但这是我建议的过程。

https://www.gnu.org/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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值