Pythonを用いた画像保存

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
res

Pythonを用いた画像保存

#1

投稿記事 by res » 4年前

pythonを使ってinstagramのサイトにある指定したユーザーの画像を全て保存したい。
https://instagram.com

コード:

#!/usr/bin/python
#coding:utf-8

import sys, urllib
import os.path

url =' '

def download(url):
	img = urllib.urlopen(url)
	localfile = open( os.path.basename(url), 'wb')
	localfile.write(img.read())
	img.close()
	localfile.close()

download(url)
このようなコードで直接urlを指定すれば画像を保存することができますが、
https://instagram.com/arianagrande/
このurlを指定しただけで画像をすべて取得できるようにしたいのですがアプローチがわかりません。
コードで示していただけるとありがたいです。

アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: Pythonを用いた画像保存

#2

投稿記事 by みけCAT » 4年前

res さんが書きました:https://instagram.com/arianagrande/
このurlを指定しただけで画像をすべて取得できるようにしたいのですが
利用規約に違反しないでしょうか?
一般条項
(中略)
10. 弊社は、自動装置などを使って本サービス上のあらゆるコンテンツ(ユーザーのプロフィールや写真を含みますが、これに限定されません)を巡回、収集、キャッシングしたり、これにアクセスすることを禁止しています(ただし、標準的な検索エンジンプロトコルまたはInstagramが明示的に認めている検索エンジンが使用する技術を用いる場合を除きます)。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

res

Re: Pythonを用いた画像保存

#3

投稿記事 by res » 4年前

///
一般条項
(中略)
10. 弊社は、自動装置などを使って本サービス上のあらゆるコンテンツ(ユーザーのプロフィールや写真を含みますが、これに限定されません)を巡回、収集、キャッシングしたり、これにアクセスすることを禁止しています(ただし、標準的な検索エンジンプロトコルまたはInstagramが明示的に認めている検索エンジンが使用する技術を用いる場合を除きます)。
///

私は”自動”で収集する行為を違反していると認識しています。
instagramAPIを用いて画像にアクセスすることができるようにサポートされており、問題ないと解釈していました。

通りがかり

Re: Pythonを用いた画像保存

#4

投稿記事 by 通りがかり » 4年前

stackoverlfowに行ってweb crawler で検索したほうが良いのでは?
spider等の専用のライブラリーを使ったり、beautifulsoupでhtml解析したりが標準的な手順ですが、日本のネットだと普通にWebsiteにアクセスしても逮捕されるんで、皆ウェブ技術は触りたくないんですよ。

まあ、普通にhtmlとre覚えたら出来ますよ。低速でやらないと警察が来ますが。

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: Pythonを用いた画像保存

#5

投稿記事 by YuO » 4年前

技術的にはGET /users/user-id/media/recentでしょう。

ただし,これを「表示」に使うのはよいですが,「保存」に使うのは利用規約違反だと思われます。
APIを使っても自動であることには変わりがなく,APIを使って保存できる旨が明示で書かれていないためです。


ちなみに,HTML解析で画像を取得するのは無理です (JavaScriptの解析を必要とする)。
利用規約を見たときに,「標準的な検索エンジンプロトコル ... を用いる場合を除きます」があるので,ざる条項かと思いましたが,ソースを見ると画像は全てJavaScriptで表示していました。
標準的な検索エンジンプロトコルはHTMLのパースとGETによるリクエストしか行わないので,JavaScriptの解析を行って取得してしまったら,おそらく利用規約違反です。

通りがかり

Re: Pythonを用いた画像保存

#6

投稿記事 by 通りがかり » 4年前

YuO さんが書きました:技術的にはGET /users/user-id/media/recentでしょう。

ただし,これを「表示」に使うのはよいですが,「保存」に使うのは利用規約違反だと思われます。
APIを使っても自動であることには変わりがなく,APIを使って保存できる旨が明示で書かれていないためです。


ちなみに,HTML解析で画像を取得するのは無理です (JavaScriptの解析を必要とする)。
利用規約を見たときに,「標準的な検索エンジンプロトコル ... を用いる場合を除きます」があるので,ざる条項かと思いましたが,ソースを見ると画像は全てJavaScriptで表示していました。
標準的な検索エンジンプロトコルはHTMLのパースとGETによるリクエストしか行わないので,JavaScriptの解析を行って取得してしまったら,おそらく利用規約違反です。

javascriptは通常html pageのdomを操作するものです。canvas等を使えばhtmlをスキップして動画やイメージの直接表示も可能かもしれませんが、今回は違うみたいですよ。imgでソースを検索すると表示されてるサムネイルのsrcが見つかりますし、a tagも見れますから。
まあ利用規約には勝てませんが。

通りがかり

Re: Pythonを用いた画像保存

#7

投稿記事 by 通りがかり » 4年前

YuO さんが書きました:技術的にはGET /users/user-id/media/recentでしょう。

ただし,これを「表示」に使うのはよいですが,「保存」に使うのは利用規約違反だと思われます。
APIを使っても自動であることには変わりがなく,APIを使って保存できる旨が明示で書かれていないためです。


ちなみに,HTML解析で画像を取得するのは無理です (JavaScriptの解析を必要とする)。
利用規約を見たときに,「標準的な検索エンジンプロトコル ... を用いる場合を除きます」があるので,ざる条項かと思いましたが,ソースを見ると画像は全てJavaScriptで表示していました。
標準的な検索エンジンプロトコルはHTMLのパースとGETによるリクエストしか行わないので,JavaScriptの解析を行って取得してしまったら,おそらく利用規約違反です。
getで落としたhtmlの解析では無理ということだったんですね。
失礼しました。技術的にはselenium web driverを使うのが一番楽そうかな。

アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: Pythonを用いた画像保存

#8

投稿記事 by みけCAT » 4年前

APIで保存するのはダメそうですね。
2. You shall not:
(略)
7. Cache or store any User Content other than for reasonable periods in order to provide the service you are providing to Instagram users.
(API Terms of Use • Instagram)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る