2016-07-09 1 views
1

Ich schreibe ein Programm in Python3, um Nachrichten zu analysieren. Nach dem Parsen hat jeder Artikel ein Datumsobjekt (Bsp. (2016, 7, 9)).Wie bekomme ich Artikel für die letzten 2 Tage nur in Python?

Was ist der beste Weg, nur Artikel zu speichern, die nur für die letzten 2 Tage veröffentlicht wurden?

+0

Welche Webseite verwenden Sie? Gibt es die gesamten Daten gleichzeitig zurück? Ich denke nicht? Sie können einen Nachrichtenartikel auf einmal erhalten und ihn analysieren, um das Datum zu erhalten und zu stoppen, sobald Sie das Datum später als 2 Tage erhalten. – TrigonaMinima

+0

@TrigonaMinima Ich analysiere mehrere Nachrichten-Websites mit der Zeitungsbibliothek. Es gibt mir Informationen zu jedem Artikel wie folgt aus: { 'article': article.title, 'article_date': article.publish_date, 'article_author': article.authors, 'article_text': article.text, ‚article_URL ': article.url, } Ich brauche nur Artikel für die letzten 2 Tage. Ich weiß, dass ich die aktuelle Datetime bekommen und vergleichen kann. Aber was ist der pythonische Weg, das zu tun? –

+0

Vielleicht ist das, was Sie suchen, 'Timedelta'? Etwas wie das - 'datetime.datetime.utcnow(). Date() - datetime.timedelta (days = 2)' –

Antwort

1

Wie Sie sagten dies Ihre Antwort war:

import datetime 
datetime.datetime.utcnow().date() - datetime.timedelta(days=2) 
0

Wenn es eine Liste von Artikeln ist:

import arrow 

threshold = arrow.now().replace(days=-2) 
filtered_articles = [a for a in articles if arrow.get(a['article_date')) > threshold] 
+0

Dies ist ein guter Weg, erfordert aber die Installation der Pfeilbibliothek. In meinem Fall musste ich nur die Standardbibliothek verwenden. Trotzdem danke. –