質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

775閲覧

twitterからの画像を保存できない

TomSierra

総合スコア9

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/05/22 18:42

python

1import tweepy 2from time import sleep 3import shutil 4import json 5import requests 6#tweepyの認証は省略します。 7 8def friends_ids_fanc(): 9 friends_ids_fanc_var = [] 10 for i,page in enumerate(tweepy.Cursor(api.friends_ids,id=user_).pages(2)): 11 for j,userID in enumerate(page): 12 friends_ids_fanc_var.append(userID) 13 return friends_ids_fanc_var 14 15friends_ids_var = friends_ids_fanc() 16print(friends_ids_var) 17#--------------------------------------------------------------------------------------------------------------------- 18def dispatching_func(friends,ids,N,Img_url): 19 if ids in friends: 20 #ここはあまり関係ないと考えられる 21 for i in range(N): 22 print(N) 23 else: 24 #ここが関係してると考えられる 25 for i in range(N): 26 imgurl = Img_url 27 print(imgurl) 28 imgdata = requests.get(imgurl) 29 filename = imgurl.split('/')[-1] 30 print(filename) 31 32 with open(filename,mode='wb') as f: 33 f.write(imgdata.content) 34 35 a = "/mnt/hdd1/twitter/no_name/"+filename 36 print(a) 37 shutil.move(a,'no_name') 38 39 40 41#---------------------------------------------------------------------------------------------- 42friends_ids_fanc() 43searchs = tweepy.Cursor(api.user_timeline, q = user_, include_entities = True, tweet_mode = 'extended').items(3200) 44for search in searchs: 45 n=0 46 ''' 47 print(i01) 48 print(json.dumps(search._json, indent=2)) 49 print('~'*30) 50 ''' 51 try: 52 for number in search.entities.get("user_mentions",{}): 53 friemds_number = number["id"] 54 friends_name = number["screen_name"] 55 print(str(friemds_number)) 56 print(friends_name) 57 except: 58 pass 59 try: 60 if hasattr (search,"extended_entities"): 61 for media in search.extended_entities.get("media",[]): 62 media_id = media["id"] 63 img_url = media["media_url"] 64 n=n+1 65 elif hasattr (search,'retweeted_status'): 66 medias = search.retweeted_status 67 for media in medias.extended_entities.get("media",[]): 68 media_id = media["id"] 69 img_url = media["media_url"] 70 n=n+1 71 dispatching_func(friends_ids_var,friemds_number,n,img_url) 72 n=0 73 except: 74 pass 75 tweet_id = search.id 76 try: 77 api.create_favorite(id=tweet_id) 78 except: 79 pass 80 try: 81 api.unretweet(id=tweet_id) 82 except: 83 pass

ubuntu20.04を使って上記のプログラムを実行してtwitterから画像をDLして特定のフォルダに保存しようとするができないのでどのようにしたら改善しますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/05/22 20:12

問題の切り分けを行いたいので、どこまで完成しているのか教えていただくことは可能でしょうか? (例) ・twitterの画像パスを取得するところまでできている。(request.getまで)
TomSierra

2021/05/23 00:26

def dispatching_funcの中身以外は完成しています。個人的に問題があるのはその部分だと考えております。
退会済みユーザー

退会済みユーザー

2021/05/23 00:40

imgdataでは期待する値は返ってきていますか? どのような値が返ってきているのか知りたいです。 print(imgdata)をお願いいたします。????‍♂️
退会済みユーザー

退会済みユーザー

2021/05/23 03:07

なるほど、回答の方で説明しましたので、ご確認のほどよろしくお願いいたします。????‍♂️
guest

回答1

0

ベストアンサー

こんにちは。

問題文読ませていただきました。

こんな感じでいかがでしょうか?

Python

1import urllib.error 2import urllib.request 3 4# 参考 : https://note.nkmk.me/python-download-web-images/ 5# 画像ファイルダウンロード関数 6def downloadFile(url, dstPath): 7 try: 8 with urllib.request.urlopen(url) as webFile: 9 # webに上がっている画像ファイルを読み込む。 10 data = webFile.read() 11 # ローカルファイルを開く。 12 with open(dstPath, mode='wb') as localFile: 13 # ローカルファイルへデータを書き込む。 14 localFile.write(data) 15 # エラーハンドリング 16 except urllib.error.URLError as e: 17 print(e) 18 19# twitterの画像 20url = 'https://pbs.twimg.com/media/C3U9eSrUkAAlfS3.jpg' 21# ローカルへファイルを格納するパス 22dstPath = '/path_to/xxx.png' 23# ダウンロードする関数を呼び出す。 24downloadFile(url, dstPath)

ご確認のほど、よろしくお願いいたします。????‍♂️

投稿2021/05/23 03:07

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問