从网络爬虫中提取内容时,哪些解决方案更快
本文关键字:解决方案 爬虫 网络 提取 | 更新日期: 2023-09-27 18:11:54
我用Asp.net做了一个网络爬虫。它工作得很好。问题是当我想从中提取内容。有些内容在HTML标签之间进行包装。我有一些解决方案来提取内容,但我不知道哪一个是更好的。它应该具有良好的性能和易于实现。
-
使用多种模式的Regex提取内容
-
使用Linq to XML提取内容。
-
使用XPath提取内容。
谢谢你的建议
你的解决方案都不是特别好。
- HTML不是一种正则语言,因此不适合正则表达式。参见使用正则表达式解析HTML的标准响应。
- HTML不一定是有效的XML
相反,你应该使用HTML解析库,比如HTML Agility Pack。
都不是。使用合适的HTML解析器,如HTML Agility Pack
RegEx无疑比Linq to XML和XPath都快。但是不能使用RegEx解析html标记中的所有内容。Html对于这个目的来说太复杂了。
我没有设计自己的Crawler,我使用的是arachnode.net,它可以抓取大量的数据。无论在哪里,我都使用Html敏捷包来提取各种组件,如Html控件,cookie,元标签等。
正如其他人已经暗示的那样-使用合适的HTML解析器。在大多数情况下,HTML编写得不够好,不能被当作XML对待。更糟糕的是,HTML5推动了完全不可解析的语法。例如,HTML5允许你省略属性周围的引号。
与HTML敏捷包一起,你可以看看威严-12的HTML解析器:威严-12:Projects: c# HTML Parser (. net).