teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ご指摘ありがとうございます。以後、ご指摘いただきました点を踏まえて質問をさせて頂きます。コードブロック等を追加

2020/01/26 04:56

投稿

momodebi
momodebi

スコア13

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,10 @@
1
- Webサイトでの情報を基に、
1
+ Webサイト(https://note.com/virtual_surfer/n/n9d27c8db18f8)での情報を基に、
2
2
  PythonでTwitterから特定のワードを含むツイートを収集するコードを書きました。
3
3
  しかし、コードの中身をコピペしてしまっている部分があり、色々と調べてみたのですが、
4
4
  理解できない部分があったため、質問をさせていただきました。
5
5
 
6
- コードの内容
6
+ ```
7
- ------------------------------------------------------------------------------------------
7
+ #Twitterで特定のワードを含むツイートを収集するコード
8
8
  import tweepy
9
9
  CK="*******"
10
10
  CS="*******"
@@ -16,7 +16,7 @@
16
16
  search_word='yahoo'
17
17
  search_count=3
18
18
  def collect_tweets(search_word, search_count):
19
- **__max_id=None__**
19
+ max_id=None
20
20
  collected_tweets=[]
21
21
  collected_texts=[]
22
22
  lower_search_name=search_word.lower()
@@ -24,7 +24,9 @@
24
24
  for i in range(0,search_count):
25
25
  print('#########################')
26
26
  print('「{}」での{}回目のツイート検索開始'.format(search_word,i+1))
27
+ #質問1の部分
27
- **__if max_id is None__**:
28
+ if max_id is None:
29
+ #質問2の部分
28
30
  search_results=api.search(q=search_word,count=10,lang='ja',result_type='mixed')
29
31
  else:
30
32
  search_results=api.search(q=search_word,count=10,lang='ja',max_id=max_id,result_type='mixed')
@@ -41,8 +43,9 @@
41
43
  pre_text = text[:30]
42
44
  lower_screen_name = user_info.screen_name.lower()
43
45
  lower_name = user_info.name.lower()
46
+ #質問3の部分
44
- **__if 'RT @' in text or pre_text in [text[:30] for text in collected_texts] or (lower_search_name in lower_screen_name or lower_search_name in lower_name):
47
+ if 'RT @' in text or pre_text in [text[:30] for text in collected_texts] or (lower_search_name in lower_screen_name or lower_search_name in lower_name):
45
- continue__**
48
+ continue
46
49
 
47
50
  print('------------------------------------------')
48
51
  print('【名前】{}\n【アカウント名】{}\n【自己紹介】{}\n【画像URL】{}\n【フォロー数】:{}\n【フォロワー数】:{}\n【ツイート】:{}'
@@ -50,24 +53,25 @@
50
53
 
51
54
  collected_texts.append(text)
52
55
  collected_tweets.append(status)
53
-
56
+ #質問4の部分
54
- **__if len(search_results) > 1:
57
+ if len(search_results) > 1:
55
58
  max_id = search_results[-1].id
56
59
  else:
57
- break__**
60
+ break
58
61
 
59
62
 
60
63
  collect_tweets(search_word, search_count)
64
+ ```
61
65
 
62
- ----------------------------------------------------------------------------------------
63
66
  質問箇所に関するコードは、太字斜体としています。
64
67
 
68
+ 質問内容1. if max_id is None のコードの意味
69
+ →コードの解説には、2度目以降の検索では一つ前の検索以降のつぶやきを検索していくために書くと書いてありますが、コード上ではmax_id=noneと指定しているのも相まって、良くコードの意味が理解できておりません。
70
+
71
+
65
- 質問内容1. api.searchにおけるcountの意味
72
+ 質問内容2. api.searchにおけるcountの意味
66
73
  →例えば、countを10としたら1回の検索で10個特定のワードを含むものがヒットすると考えていましたが、例えばyahooで検索したら1回目 4個 2回目 4個 3回目 2個となりました。
67
74
 
68
- 質問内容2. if max_id is None のコードの意味
69
- →コードの解説には、2度目以降の検索では一つ前の検索以降のつぶやきを検索していくために書くと書いてありますが、コード上ではmax_id=noneと指定しているのも相まって、良くコードの意味が理解できておりません。
70
-
71
75
  質問内容3.
72
76
  if 'RT @' in text or pre_text in [text[:30] for text in collected_texts] or (lower_search_name in lower_screen_name or lower_search_name in lower_name):
73
77
  continueのコードの意味