回答編集履歴

7

埋め込みHTMLからのurl抽出を追加

2021/03/08 08:06

投稿

退会済みユーザー
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, html])
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

修正

2021/03/08 08:06

投稿

退会済みユーザー
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

修正

2021/03/07 12:06

投稿

退会済みユーザー
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

修正

2021/03/07 12:05

投稿

退会済みユーザー
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
- # テスので10でに制限
41
+ # レー超過しいように100件としていすが、増やしても構いません。
36
42
 
43
+ limit = 100
44
+
37
- for tweet in tweepy.Cursor(api.user_timeline, screen_name=user, exclude_replies=True).items(10):
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["html"]
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
- print(html)
65
+ writer.writerows(tweet_data)
44
66
 
45
67
  ```

3

2021/03/07 12:03

投稿

退会済みユーザー
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="xxx", exclude_replies=True).items():
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

修正

2021/03/07 02:34

投稿

退会済みユーザー
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/mameyudoufu/status/"+str(tweet.id))
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

修正

2021/03/06 14:46

投稿

退会済みユーザー
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