使用 C# 抓取网页(html)
Posted
技术标签:
【中文标题】使用 C# 抓取网页(html)【英文标题】:Web page(html) scraping using C# 【发布时间】:2011-06-28 13:47:00 【问题描述】:这只是一个一般性问题。目前我正在使用正则表达式进行网页抓取。但我认为有时很难弄清楚正则表达式,所以我在想 XSL/XPath 是 C# 中正则表达式的替代品吗?
另外,我想知道除了上面列出的两种之外,是否还有更高级的网页抓取技术。谢谢。
【问题讨论】:
xsl/xpath 要求页面是 Xhtml 1.0,并非所有 html 都符合 xml 解析器容易使用的内容 @rene:这是干净利落的吗?如果网页是XHTML1.0,那么Xpath可以用C#,如果不是XHTML1.0,那就另谋出路? 关于 xhtml 1.0 的声明(在文档类型中)与实际符合 xhtml 1.0 之间存在差异。不,对不起,没有干净利落。但看起来你已经有了很好的答案 令人惊讶的是,此类问题的最佳答案已发布在一个更老且更具体的问题中:***.com/questions/18065526/… 【参考方案1】:您可以查看SgmlReader 或Html Agility Pack,它们是 .NET 的 HTML 解析库。
【讨论】:
从 NuGet 包管理器中,运行:Install-Package HtmlAgilityPack
就可以了 :)
@Martinho,我个人更喜欢SgmlReader
,但Html Agility Pack
也可以:-)
这是否意味着使用 从网页收集数据的简单方法是WebsiteParser。它基于 Html Agility Pack,您可以使用属性和 CSS 选择器简单地描述您的属性。
Github here
【讨论】:
以上是关于使用 C# 抓取网页(html)的主要内容,如果未能解决你的问题,请参考以下文章