Python:从html页面解析出发布日期
对于html页面,尤其是与新闻相关的页面,如果有一种解析发布日期的机制,这将非常有用 不幸的是,互联网上没有一套日期正则表达式/模式。CNN可能会像年月日一样发布,赫芬顿邮报可能会像年月日一样发布,等等 有没有人有比单纯的正则表达式解析更好的策略来从html页面中提取发布日期Python:从html页面解析出发布日期,python,regex,Python,Regex,对于html页面,尤其是与新闻相关的页面,如果有一种解析发布日期的机制,这将非常有用 不幸的是,互联网上没有一套日期正则表达式/模式。CNN可能会像年月日一样发布,赫芬顿邮报可能会像年月日一样发布,等等 有没有人有比单纯的正则表达式解析更好的策略来从html页面中提取发布日期 谢谢。我不明白为什么正则表达式集合不起作用。有各种不同的格式,但实际上只有少数几种是最常见的。比如说,有了一打简单的正则表达式,你大概可以清除90%的日期 另一种(部分)方法是扫描月份名称和缩写,然后扫描周围文本中的日期和
谢谢。我不明白为什么正则表达式集合不起作用。有各种不同的格式,但实际上只有少数几种是最常见的。比如说,有了一打简单的正则表达式,你大概可以清除90%的日期 另一种(部分)方法是扫描月份名称和缩写,然后扫描周围文本中的日期和年份 仅就数字而言,最困难的部分是确定是先月后日期还是先日期后月份。因此,如果日期部分大于12,这将是很容易的,但除此之外,实际上并不需要知道 您还可以查找带有
datetime
属性的
元素,该属性应该遵循明确的格式(尽管不一定一致)
总之,我不认为有任何一种方法可以找到文档中的所有日期,除非您知道它们都遵循相同的格式,这显然不是一般情况。要很好地找到它们,您只需要使用几种不同的策略。我不明白为什么一组正则表达式不起作用。有各种不同的格式,但实际上只有少数几种是最常见的。比如说,有了一打简单的正则表达式,你大概可以清除90%的日期 另一种(部分)方法是扫描月份名称和缩写,然后扫描周围文本中的日期和年份 仅就数字而言,最困难的部分是确定是先月后日期还是先日期后月份。因此,如果日期部分大于12,这将是很容易的,但除此之外,实际上并不需要知道 您还可以查找带有
datetime
属性的
元素,该属性应该遵循明确的格式(尽管不一定一致)
总之,我不认为有任何一种方法可以找到文档中的所有日期,除非您知道它们都遵循相同的格式,这显然不是一般情况。要很好地找到它们,您只需要使用几种不同的策略。尝试使用库中的函数
它使用一些启发式方法来检测日期格式。它自动工作:)
python还有一个很好的小日期/时间库-。它也在内部使用dateutil,但它也有助于在时区中正常工作
>>> import times
>>> times.to_universal('2012-02-03 11:59:03', 'Europe/Amsterdam')
datetime.datetime(2012, 2, 3, 10, 59, 3)
>>> times.to_local(_, 'Europe/Amsterdam')
datetime.datetime(2012, 2, 3, 11, 59, 3, tzinfo=<DstTzInfo 'Europe/Amsterdam' CET+1:00:00 STD>)
导入次数
>>>《纽约时报》致环球(“2012-02-03 11:59:03”,“欧洲/阿姆斯特丹”)
datetime.datetime(2012,2,3,10,59,3)
>>>泰晤士报。到当地(‘欧洲/阿姆斯特丹’)
datetime.datetime(2012,2,3,11,59,3,tzinfo=)
但对于仅仅检测日期格式的正则表达式,我认为是一个很好的解决方案
在实际项目中,我将执行以下步骤:
>>> import times
>>> times.to_universal('2012-02-03 11:59:03', 'Europe/Amsterdam')
datetime.datetime(2012, 2, 3, 10, 59, 3)
>>> times.to_local(_, 'Europe/Amsterdam')
datetime.datetime(2012, 2, 3, 11, 59, 3, tzinfo=<DstTzInfo 'Europe/Amsterdam' CET+1:00:00 STD>)
导入次数
>>>《纽约时报》致环球(“2012-02-03 11:59:03”,“欧洲/阿姆斯特丹”)
datetime.datetime(2012,2,3,10,59,3)
>>>泰晤士报。到当地(‘欧洲/阿姆斯特丹’)
datetime.datetime(2012,2,3,11,59,3,tzinfo=)
但对于仅仅检测日期格式的正则表达式,我认为是一个很好的解决方案
在实际项目中,我将执行以下步骤:
我正在阅读他们的api,看起来很有趣!但是我很难找到你刚才描述的用途。有什么想法吗?谢谢,我刚刚在上面加了几个例子。谢谢,你的回答实际上解决了我一半的问题!上半部分实际上是检测html文件中存在“2013年4月12日”或“2013年4月12日”的位置。但无论如何干得不错。如果一天后没有人回复,我会把你标记为格林。我补充了一些关于格式检测的想法。是的,我认为正则表达式在这里是可以的。我现在正在阅读他们的api,看起来很有趣!但是我很难找到你刚才描述的用途。有什么想法吗?谢谢,我刚刚在上面加了几个例子。谢谢,你的回答实际上解决了我一半的问题!上半部分实际上是检测html文件中存在“2013年4月12日”或“2013年4月12日”的位置。但无论如何干得不错。如果一天后没有人回复,我会把你标记为格林。我补充了一些关于格式检测的想法。是的,我认为正则表达式在这里是可以的。