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