【发布时间】:2012-08-05 21:46:32
【问题描述】:
我有一个网页,我正在尝试从中获取日期。我知道格式是什么,所以解决方法应该和time.strptime(format)一样简单,但问题是这样的:If string cannot be parsed according to format, or if it has excess data after parsing, ValueError is raised.
我正在尝试解析如下内容:
<tr><td align="center"><b>Create time</b></td>
</tr><tr><td align="center" bgcolor="#DDDDDD">Between August 1, 2012, 8:05 pm and August 1, 2012, 8:06 pm</td>
对应的格式是%B %d, %Y(哪个日期并不重要,我只需要一个日期)。
我可以使用正则表达式(例如 ([JFMASOND][a-z]{2,8}) ([0-9]{1,2}), ([0-9]{4}) )来获取字符串的相关部分,但是我也可以从正则表达式中获取值本身并自己进行必要的转换。可以这么说,有什么方法可以在容器字符串上使用 strptime 吗? strptime 不应该太难在字符串上继续处理直到它得到格式匹配......
(如果我必须自己做,有没有比正则表达式更好的方法?)
【问题讨论】:
-
首先,您使用的是 XML 解析器来解析 HTML,对吧?
-
@lkjoel:我不会使用 XML 解析器来解析 HTML。使用 BeautifulSoup。
-
什么解析?我只需要页面中的日期。
-
@Dubslow:为了使日期解析更容易,您需要从 HTML 中提取文本,这就是 HTML 解析器所做的。
-
是的,但是解析器只能告诉我
里面有什么,而且我需要清除大部分剩下的东西。
标签: python parsing datetime python-3.x