前提・実現したいこと
pythonのコードで
tweepyで収集したツイート本文から、リプライ先"@ユーザー名"を削除したいです。
発生している問題・エラーメッセージ
ほとんどのツイートでは上手く削除できていますが、絵文字が含まれるツイートに対してのみ出力結果が文字化けします。
・絵文字が含まれないツイートの場合
テスト?
・絵文字が含まれるツイートの場合
ー羃ヨー蜑C
該当のソースコード
python
1# coding:utf-8 2 3import tweepy 4import re 5 6def printTweetBySearch(s): 7 api = authTwitter() # 認証 8 9tweets = tweepy.Cursor(api.search, q = s, # APIの種類と検索文字列 10 include_entities = True, # 省略されたリンクを全て取得 11 tweet_mode = 'extended', # 省略されたツイートを全て取得 12 lang = 'ja').items() # 日本のツイートのみ取得 13 14for tweet in tweets: 15 print(re.sub(r'@[0-9a-zA-Z_:]*', "", tweet.full_text)) 16 17def main(): 18 printTweetBySearch("from:weo88559856 lang:ja -filter:links exclude:retweets") 19 20if __name__ == "__main__": 21 main()
試したこと
ツイート本文をそのままprintすると絵文字の部分は"?"となっているようでした。
@hoge テスト?
対話型で実行した場合、文字化けは発生しませんでした。
補足情報(FW/ツールのバージョンなど)
python 3.6.8
実際に文字化けするツイート本文の文字列の例を提示ください。
(たとえばre.sub(r'@[0-9a-zA-Z_:]*', '', '????????????')なら文字化けしません)
ステータスIDの方がいいかもしれません。
(文字化けしているという環境での「信用できる情報」を提示してもらうのは難しいので)
ご質問ありがとうございます。
例として、以下のコードで収集したツイート本文"テスト+絵文字"が文字化けします。
※API認証部分のコードは省いています。
```
def printTweetBySearch(s):
api = authTwitter() # 認証
tweets = tweepy.Cursor(api.search, q = s, # APIの種類と検索文字列
include_entities = True, # 省略されたリンクを全て取得
tweet_mode = 'extended', # 省略されたツイートを全て取得
lang = 'ja').items() # 日本のツイートのみ取得
for tweet in tweets:
print(re.sub(r'@[0-9a-zA-Z_:]*', "", tweet.full_text))
def main():
printTweetBySearch("from:weo88559856 lang:ja -filter:links exclude:retweets")
if __name__ == "__main__":
main()
```
よろしくお願いいたします。
質問を編集しましょう。
コードに特に問題はなく、純粋に「文字化けする環境である」ということのようなので、質問に環境を明記して、表題やタグを見直すのがよいかと思います。
あなたの回答
tips
プレビュー