【问题标题】:better system than regex比正则表达式更好的系统
【发布时间】:2023-03-31 04:28:01
【问题描述】:

我制作了一个可以从特定网站提取某些特定信息的应用程序。为此,我使用了正则表达式,它给了我想要的输出。对于那个简单的爬虫,有没有比正则表达式更有效的过程或想法。

【问题讨论】:

  • 这取决于你想要什么信息......你可以使用解析器......
  • 您没有提供足够的细节来回答这个问题。您要提取什么/多少信息?您目前使用的是什么代码?
  • 说实话,你可以使用循环来做同样的事情,但是这个过程会产生很多 String 对象。以我的经验,正则表达式是最快的方式,也是最好的方式,如果可以应用的话。

标签: java web-crawler


【解决方案1】:

如果您说它是解决您的问题的简单正则表达式,那么没有其他更有效的解决方案。 当涉及到爬虫时,替代方法是将整个 html 页面加载到内存中,在 DOM 文档中并使用 XPath 甚至 XQuery 进行搜索。但实际上,如果使用 regex 可以轻松提取信息,那么请不要费心,尤其是如果您不熟悉 XPath。

当您想要进行复杂的搜索时,XPath 的强大功能就会发挥作用。对于这个任务,它比正则表达式更优雅(至少在 w3c 的意见中)。但是如果你想要一个快速的解决方案,你已经找到了,而且它在 RAM 方面也更有效。

【讨论】:

  • 但是整个“你不能对 HTML 使用正则表达式”这个概念发生了什么?
  • @Mr Lister 这不是“你不能”,而是“你不应该”。它仍然有效。但如果你只是想要一个简单快速的东西,那没关系。这个概念是基于 html 可以更改的事实,它还需要您更改代码。但这有时也适用于其他解决方案。如果您正在进行一些激烈的抓取,那么您应该远离使用正则表达式进行解析。
猜你喜欢
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多