2016-08-25 3 views
0

Ich habe Problem bei dieser Suche:Warum reddit cloudsearch gibt falsche Ergebnisse mit Timestamp-Suche zurück?

list(r.search('timestamp:{}..{}'.format(ts1,ts2), sort='new', subreddit=subreddit, syntax='cloudsearch',limit=None)) 

Es wird ~ 1000 neueste Beiträge aus Zeitstempel ts1 (in meinem Fall subreddit Erstellungszeit) zu ts2

Was mein Skript tut, ist:

  1. Holen Sie sich die neuesten Einsendungen
  2. Nehmen Sie die Erstellungszeit der zweit neuesten Einreichung und setzen Sie es als ts2
  3. Sie die Suche mit neuen Zeitstempel

Wenn nach dem ersten Such ich Einreichungen 1,2,3,4,5,6,7,8,9 bekam, dann nach der zweiten man erwarten, ich 3,4,5,6,7,8,9 zu bekommen, leider kann ich sie nicht bekommen, aber so etwas wie 7,8,9 bekommen. Irgendeine Idee warum?

Unten finden Sie meine Skript- und Beispielergebnisse.

Ergebnisse:

t3_4zh8zw, 1472107937.0 
t3_4zgl1n, 1472096403.0 
t3_4zgf34, 1472093883.0 
t3_4zg8de, 1472091260.0 
t3_4zfzun, 1472087983.0 
t3_4zfysv, 1472087571.0 
t3_4zf8hg, 1472077921.0 
t3_4zf7g6, 1472077542.0 
t3_4zf4p5, 1472076595.0 
t3_4zf0d7, 1472075090.0 
t3_4zeqeg, 1472071708.0 
t3_4zeomz, 1472071134.0 
t3_4zebse, 1472066994.0 
t3_4zduso, 1472061376.0 
t3_4zdtne, 1472061014.0 
####################### 
t3_4zebse, 1472066994.0 
t3_4zduso, 1472061376.0 
t3_4zdtne, 1472061014.0 
t3_4zdipi, 1472057168.0 
t3_4zdfj3, 1472056078.0 
t3_4zd4v3, 1472052437.0 
t3_4zd0l5, 1472051081.0 
t3_4zctiu, 1472048701.0 
t3_4zazqj, 1472016633.0 
t3_4zawm3, 1472015079.0 
t3_4zavyc, 1472014757.0 
t3_4za5hb, 1472003960.0 
t3_4z9ydt, 1472001398.0 
t3_4z9xhx, 1472001065.0 
t3_4z9ufa, 1471999935.0 

Script:

import praw 
import time 

user_agent = 'clodsearch-timestamp test' 
r = praw.Reddit(user_agent=user_agent) 

subreddit = r.get_subreddit('laptops') 

ts1 = int(subreddit.created_utc)-1 
ts2 = int(time.time()) 

submissions = list(r.search('timestamp:{}..{}'.format(ts1,ts2), sort='new', subreddit=subreddit, syntax='cloudsearch',limit=None)) 

for submission in submissions[:15]: 
    print("{}, {}".format(submission.fullname, submission.created_utc)) 

ts2 = int(submissions[1].created_utc) - 1 

print('#######################') 

submissions = list(r.search('timestamp:{}..{}'.format(ts1,ts2), sort='new', subreddit=subreddit, syntax='cloudsearch',limit=None)) 

for submission in submissions[:15]: 
    print("{}, {}".format(submission.fullname, submission.created_utc)) 

Antwort

1

Für Cloud soweit ich sammeln kann man nicht created_utc verwenden sollten.

Wenn Sie submission.created_utc in nur submission.created ändern, erhalten Sie genau das Verhalten, das Sie benötigen.

Dies liegt an Cloudsearch mit Epochtime direkt. Es ist nicht notwendig, sie in UTC oder GMT zu konvertieren, und dies hat je nach Zeitzone unterschiedliche Auswirkungen.

Verwandte Themen