回答編集履歴

8

UTCの件コメント追加

2020/10/18 07:51

投稿

sfdust
sfdust

スコア1135

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  dt = datetime.datetime.now()
52
52
 
53
- dt_hour_min = dt.strftime("%H%M") # 現在時刻(時間+分)を格納する。
53
+ dt_hour_min = dt.strftime("%H%M") # 現在時刻(時間+分)を格納する。※apiで取得される時間はUTCなのでUTC以外と比較する場合は適宜調整すること
54
54
 
55
55
 
56
56
 

7

2020/10/18 07:51

投稿

sfdust
sfdust

スコア1135

test CHANGED
@@ -19,6 +19,10 @@
19
19
  質問により仕様を明確化させていただいた結果を踏まえ、監視対象時間を時・分の形に変え、
20
20
 
21
21
  かつ監視対象時間外のツイートについては一切無視する形としています。
22
+
23
+
24
+
25
+ (無限ループを抜ける場合は、CTRL+C(macの場合Command+Zでも終了できると思います。)を押してください)
22
26
 
23
27
 
24
28
 

6

追加

2020/10/18 05:35

投稿

sfdust
sfdust

スコア1135

test CHANGED
@@ -1,4 +1,16 @@
1
- 元のコードですと、指定した分(settime)と現在時刻の分が同じになった場合、whileループを抜けて終了してしまいます。
1
+ 質問文1番目に掲示されたコードですと、指定した分(settime)と現在時刻の分が同じになった場合、whileループを抜けて終了してしまいます。
2
+
3
+
4
+
5
+ ```
6
+
7
+ while set_time != dt_min: <--- set_time == dt_min である場合、whileループを抜けてプログラムが終わる
8
+
9
+ (処理)
10
+
11
+ ```
12
+
13
+
2
14
 
3
15
  したがって、元のコードを生かすならば、下記のように、無限ループにしたうえで、1秒ごとに現在時刻が指定した時刻であるかどうか監視する形になります。
4
16
 

5

修正

2020/10/18 05:34

投稿

sfdust
sfdust

スコア1135

test CHANGED
@@ -93,7 +93,3 @@
93
93
 
94
94
 
95
95
  ```
96
-
97
-
98
-
99
- (他の回答者の方へ:上記はベストプラクティスではありませんが、可能な限り元のコードを生かすために上記内容として回答しています。)

4

コメント修正

2020/10/18 05:15

投稿

sfdust
sfdust

スコア1135

test CHANGED
@@ -64,19 +64,21 @@
64
64
 
65
65
 
66
66
 
67
- # ここにやりたい処理書きます
67
+ # ツイートの時・分取得
68
68
 
69
69
  tt = re.findall(r"\d+", str(status.created_at))
70
70
 
71
71
  tt_hour_min = ''.join((tt[3],tt[4]))
72
-
73
-
74
72
 
75
73
  # 指定した時間以外のツイートであった場合は、forループを抜ける。(本来ならば、前日の同じ時刻のツイートの存在まで考慮すべきですが、ここでは簡便のため考慮していません)
76
74
 
77
75
  if tt_hour_min != set_time:
78
76
 
79
77
  break
78
+
79
+
80
+
81
+ # ここ以下にやりたい処理を書きます。
80
82
 
81
83
  content = re.findall(r"\w+", status.full_text)
82
84
 

3

コメント修正

2020/10/18 05:14

投稿

sfdust
sfdust

スコア1135

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  for status in tweet:
52
52
 
53
- # すでに取得しているツイートと重複していないか判定する。
53
+ # 取得したツイートが、すでに取得済のツイートと重複していないか判定する。
54
54
 
55
55
  # 重複している場合はforループを抜ける。
56
56
 
@@ -58,9 +58,13 @@
58
58
 
59
59
  break
60
60
 
61
- # 取得したツイートのIDを格納する。
61
+ # 取得したツイートのIDを重複判定用のsetに格納する。
62
62
 
63
63
  fetched_tweet_ids.add(status.id)
64
+
65
+
66
+
67
+ # ここにやりたい処理を書きます
64
68
 
65
69
  tt = re.findall(r"\d+", str(status.created_at))
66
70
 

2

ツイート取得数をもとのコードと同じ数に修正

2020/10/18 05:07

投稿

sfdust
sfdust

スコア1135

test CHANGED
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
 
47
- tweet = tweepy.Cursor(api.user_timeline, id = username, tweet_mode = "extended").items(30)
47
+ tweet = tweepy.Cursor(api.user_timeline, id = username, tweet_mode = "extended").items(1)
48
48
 
49
49
 
50
50
 

1

import

2020/10/18 04:47

投稿

sfdust
sfdust

スコア1135

test CHANGED
@@ -11,6 +11,10 @@
11
11
 
12
12
 
13
13
  ```
14
+
15
+ (前略)
16
+
17
+ import time
14
18
 
15
19
  (前略)
16
20