1

HTML ページ、特にニュース関連のページの場合、発行日を解析するメカニズムがあれば非常に便利で、非常に便利です。

残念ながら、インターネット上の日付の正規表現/パターンは 1 つではありません。CNN は MONTH DD、YYYY のように発行することがあり、HuffingtonPost は MM/DD/YY などのように発行することがあります。

HTMLページから出版日を抽出するための純粋な正規表現解析よりも優れた戦略を持っている人はいますか?

ありがとうございました。

4

2 に答える 2

5

dateutilライブラリのparse関数を試してください。

ヒューリスティックのセットを使用して、日付形式を検出します。それは自動的に動作します:)

>>> from dateutil.parser import parse

>>> parse('April 12, 2013')
datetime.datetime(2013, 4, 12, 0, 0)

>>> parse('04/12/13')
datetime.datetime(2013, 4, 12, 0, 0)

Python 用の優れた小さな日付/時刻ライブラリがもう 1 つあります — <a href="https://github.com/nvie/times/" rel="nofollow">times. 内部でも 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>)

しかし、日付形式の正規表現を検出するだけでも良い解決策だと思います。

実際のプロジェクトでは、次の手順を実行します。

  1. 一連の正規表現 (既知の日付形式) で日付を確認してみてください。
  2. 既知の形式の場合 —事前定義されたパターンでstdlib strptimeを使用します。
  3. 不明な形式の場合 — dateutil の低速解析を使用し、ログに警告を書き込みます。
于 2013-09-07T03:50:03.170 に答える