gpt4 book ai didi

java - 从网页中提取日期

转载 作者:搜寻专家 更新时间:2023-11-01 03:44:18 27 4
gpt4 key购买 nike

我想从网页中提取不同格式的日期。我正在使用 Selenium2 Java API 与浏览器进行交互。我还使用 jQuery 进一步与文档进行交互。因此,欢迎使用两层的解决方案。

不同地区的日期格式可能大相径庭。此外,月份名称可以写成文本或数字。我需要匹配尽可能多的日期,而且我知道有很多组合。

例如,如果我有这样一个 HTML 元素:

<div class="tag_view">
Last update: May,22,2011
View :40
</div>

我希望提取并识别日期的相关部分:

May,22,2011

现在应该将其转换为常规的 Java Date 对象。

更新

这应该适用于任何网页的 HTML,日期可以包含在任何格式的任何元素中。例如,在 Stackoverflow 上,源代码如下所示:

<span class="relativetime" title="2011-05-13 14:45:06Z">May 13 at 14:45</span>

我希望它以最有效的方式完成,我想这将是一个返回标准化日期表示的 jQuery 选择器或过滤器。但我愿意接受您的建议。

最佳答案

由于我们不能将自己局限于任何特定元素类型或任何元素的子元素,所以您基本上是在谈论在整个页面的文本中搜索日期。以任何一种效率执行此操作的唯一方法是使用正则表达式。由于您要查找任何格式的日期,因此每种可接受的格式都需要一个正则表达式。一旦你定义了那些是什么,只需编译正则表达式并运行类似的东西:

var datePatterns = new Array();
datePatterns.push(/\d\d\/\d\d\/\d\d\d\d/g);
datePatterns.push(/\d\d\d\d\/\d\d\/\d\d/g);
...

var stringToSearch = $('body').html(); // change this to be more specific if at all possible
var allMatches = new Array();
for (datePatternIndex in datePatterns){
allMatches.push(stringToSearch.match(datePatterns[datePatternIndex]));
}

您可以通过谷歌搜索找到更多日期正则表达式,或者自己制作它们,它们非常简单。需要注意的一件事:您可能会结合上面的一些正则表达式来创建一个更高效的程序。我会非常小心,它可能会导致您的代码很快变得难以阅读。对每个日期格式执行一个正则表达式似乎更简洁。

关于java - 从网页中提取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6100353/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com