加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 从网页中提取日期

发布时间:2020-12-15 02:25:53 所属栏目:Java 来源:网络整理
导读:我想从网页中提取不同格式的日期.我正在使用Selenium2 Java API与浏览器进行交互.我还使用jQuery进一步与文档交互.因此,欢迎两层解决方案. 日期可以在不同的区域设置中具有非常不同的格式.此外,月份名称可以写为文本或数字.我需要尽可能多地匹配日期,并且我
我想从网页中提取不同格式的日期.我正在使用Selenium2 Java API与浏览器进行交互.我还使用jQuery进一步与文档交互.因此,欢迎两层解决方案.

日期可以在不同的区域设置中具有非常不同的格式.此外,月份名称可以写为文本或数字.我需要尽可能多地匹配日期,并且我知道有许多组合这一事实.

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

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

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

May,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(/dd/dd/dddd/g);
datePatterns.push(/dddd/dd/dd/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]));
}

您可以通过Google搜索找到更多日期正则表达式,或者自己创建它们,它们非常简单.有一点需要注意:您可以将上面的一些正则表达式组合起来以创建更高效??的程序.我会非常小心,这可能会导致您的代码很难快速阅读.每个日期格式执行一个正则表达式似乎更清晰.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读