回答編集履歴
7
埋め込みHTMLからのurl抽出を追加
test
CHANGED
@@ -7,6 +7,8 @@
|
|
7
7
|
import tweepy
|
8
8
|
|
9
9
|
import csv
|
10
|
+
|
11
|
+
import re # 追加
|
10
12
|
|
11
13
|
# 下記APIキーは自分のに書き換えてください。
|
12
14
|
|
@@ -56,7 +58,19 @@
|
|
56
58
|
|
57
59
|
html = oembed.get("html")
|
58
60
|
|
61
|
+
url_re = re.search(re.compile(r'<a href=\"(https://t.co/[A-Za-z0-9]+)\">'), html)
|
62
|
+
|
63
|
+
if url_re:
|
64
|
+
|
65
|
+
url = url_re.group(1)
|
66
|
+
|
67
|
+
else:
|
68
|
+
|
69
|
+
url = ''
|
70
|
+
|
59
|
-
tweet_data.append([tweet.id, tweet.created_at,tweet.text.replace('\n',''),tweet.favorite_count, tweet.retweet_count,
|
71
|
+
tweet_data.append([tweet.id, tweet.created_at, tweet.text.replace('\n',''), tweet.favorite_count, tweet.retweet_count, url])
|
72
|
+
|
73
|
+
|
60
74
|
|
61
75
|
|
62
76
|
|
6
修正
test
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
-
for tweet in tweepy.Cursor(api.user_timeline,screen_name = user ,exclude_replies = True).items():
|
51
|
+
for tweet in tweepy.Cursor(api.user_timeline,screen_name = user ,exclude_replies = True).items(limit):
|
52
52
|
|
53
53
|
print(tweet.text)
|
54
54
|
|
5
修正
test
CHANGED
@@ -42,6 +42,12 @@
|
|
42
42
|
|
43
43
|
limit = 100
|
44
44
|
|
45
|
+
|
46
|
+
|
47
|
+
tweet_data = []
|
48
|
+
|
49
|
+
|
50
|
+
|
45
51
|
for tweet in tweepy.Cursor(api.user_timeline,screen_name = user ,exclude_replies = True).items():
|
46
52
|
|
47
53
|
print(tweet.text)
|
4
修正
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
import csv
|
10
10
|
|
11
|
-
# 下記APIキーは自分の
|
11
|
+
# 下記APIキーは自分のに書き換えてください。
|
12
12
|
|
13
13
|
consumer_key = "XXXXXXXXXXXXXXXX"
|
14
14
|
|
@@ -26,20 +26,42 @@
|
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
+
# wait_on_rate_limit=Trueとした場合、レート超過したら自動的に15分止まります。
|
30
|
+
|
29
|
-
api = tweepy.API(auth)
|
31
|
+
api = tweepy.API(auth, wait_on_rate_limit=True)
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
# userは抽出したいユーザー名に変えてください。
|
30
36
|
|
31
37
|
user = "JAXA_jp"
|
32
38
|
|
33
39
|
|
34
40
|
|
35
|
-
#
|
41
|
+
# レート超過しないように100件としていますが、増やしても構いません。
|
36
42
|
|
43
|
+
limit = 100
|
44
|
+
|
37
|
-
for tweet in tweepy.Cursor(api.user_timeline,
|
45
|
+
for tweet in tweepy.Cursor(api.user_timeline,screen_name = user ,exclude_replies = True).items():
|
46
|
+
|
47
|
+
print(tweet.text)
|
38
48
|
|
39
49
|
oembed = api.get_oembed("https://twitter.com/"+tweet.user.screen_name+"/status/"+str(tweet.id))
|
40
50
|
|
41
|
-
html = oembed
|
51
|
+
html = oembed.get("html")
|
42
52
|
|
53
|
+
tweet_data.append([tweet.id, tweet.created_at,tweet.text.replace('\n',''),tweet.favorite_count, tweet.retweet_count, html])
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
#csv出力
|
58
|
+
|
59
|
+
with open('XXXXXXXXXXXXXXXX.csv', 'w',newline='',encoding='utf-8') as f:
|
60
|
+
|
61
|
+
writer = csv.writer(f, lineterminator='\n')
|
62
|
+
|
63
|
+
writer.writerow(["id", "created_at", "text", "fav", "RT", "URL"])
|
64
|
+
|
43
|
-
|
65
|
+
writer.writerows(tweet_data)
|
44
66
|
|
45
67
|
```
|
3
test
CHANGED
@@ -4,16 +4,42 @@
|
|
4
4
|
|
5
5
|
```
|
6
6
|
|
7
|
-
|
7
|
+
import tweepy
|
8
8
|
|
9
|
+
import csv
|
10
|
+
|
11
|
+
# 下記APIキーは自分の者に書き換えてください。
|
12
|
+
|
13
|
+
consumer_key = "XXXXXXXXXXXXXXXX"
|
14
|
+
|
15
|
+
consumer_secret = "XXXXXXXXXXXXXXXX"
|
16
|
+
|
17
|
+
access_key = "XXXXXXXXXXXXXXXX"
|
18
|
+
|
19
|
+
access_secret = "XXXXXXXXXXXXXXXX"
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
|
24
|
+
|
25
|
+
auth.set_access_token(access_key, access_secret)
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
api = tweepy.API(auth)
|
30
|
+
|
31
|
+
user = "JAXA_jp"
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
# テスト用なので10個までに制限
|
36
|
+
|
9
|
-
for tweet in tweepy.Cursor(api.user_timeline, screen_name=
|
37
|
+
for tweet in tweepy.Cursor(api.user_timeline, screen_name=user, exclude_replies=True).items(10):
|
10
38
|
|
11
39
|
oembed = api.get_oembed("https://twitter.com/"+tweet.user.screen_name+"/status/"+str(tweet.id))
|
12
40
|
|
13
|
-
|
14
|
-
|
15
41
|
html = oembed["html"]
|
16
42
|
|
17
|
-
(
|
43
|
+
print(html)
|
18
44
|
|
19
45
|
```
|
2
修正
test
CHANGED
@@ -8,7 +8,9 @@
|
|
8
8
|
|
9
9
|
for tweet in tweepy.Cursor(api.user_timeline, screen_name="xxx", exclude_replies=True).items():
|
10
10
|
|
11
|
-
oembed = api.get_oembed("https://twitter.com/
|
11
|
+
oembed = api.get_oembed("https://twitter.com/"+tweet.user.screen_name+"/status/"+str(tweet.id))
|
12
|
+
|
13
|
+
|
12
14
|
|
13
15
|
html = oembed["html"]
|
14
16
|
|
1
修正
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
for tweet in tweepy.Cursor(api.user_timeline, screen_name="xxx", exclude_replies=True).items():
|
10
10
|
|
11
|
-
oembed = api.get_oembed(tweet.id)
|
11
|
+
oembed = api.get_oembed("https://twitter.com/mameyudoufu/status/"+str(tweet.id))
|
12
12
|
|
13
13
|
html = oembed["html"]
|
14
14
|
|