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搜索找到更多日期正则表达式,或者自己创建它们,它们非常简单.有一点需要注意:您可以将上面的一些正则表达式组合起来以创建更高效??的程序.我会非常小心,这可能会导致您的代码很难快速阅读.每个日期格式执行一个正则表达式似乎更清晰. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |