ページ 1 / 1
Pythonを用いた画像保存
Posted: 2015年8月11日(火) 17:32
by res
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を指定しただけで画像をすべて取得できるようにしたいのですがアプローチがわかりません。
コードで示していただけるとありがたいです。
Re: Pythonを用いた画像保存
Posted: 2015年8月11日(火) 17:42
by みけCAT
利用規約に違反しないでしょうか?
一般条項
(中略)
10. 弊社は、自動装置などを使って本サービス上のあらゆるコンテンツ(ユーザーのプロフィールや写真を含みますが、これに限定されません)を巡回、収集、キャッシングしたり、これにアクセスすることを禁止しています(ただし、標準的な検索エンジンプロトコルまたはInstagramが明示的に認めている検索エンジンが使用する技術を用いる場合を除きます)。
Re: Pythonを用いた画像保存
Posted: 2015年8月13日(木) 01:11
by res
///
一般条項
(中略)
10. 弊社は、自動装置などを使って本サービス上のあらゆるコンテンツ(ユーザーのプロフィールや写真を含みますが、これに限定されません)を巡回、収集、キャッシングしたり、これにアクセスすることを禁止しています(ただし、標準的な検索エンジンプロトコルまたはInstagramが明示的に認めている検索エンジンが使用する技術を用いる場合を除きます)。
///
私は”自動”で収集する行為を違反していると認識しています。
instagramAPIを用いて画像にアクセスすることができるようにサポートされており、問題ないと解釈していました。
Re: Pythonを用いた画像保存
Posted: 2015年9月25日(金) 00:42
by 通りがかり
stackoverlfowに行ってweb crawler で検索したほうが良いのでは?
spider等の専用のライブラリーを使ったり、beautifulsoupでhtml解析したりが標準的な手順ですが、日本のネットだと普通にWebsiteにアクセスしても逮捕されるんで、皆ウェブ技術は触りたくないんですよ。
まあ、普通にhtmlとre覚えたら出来ますよ。低速でやらないと警察が来ますが。
Re: Pythonを用いた画像保存
Posted: 2015年9月25日(金) 02:18
by YuO
技術的には
GET /users/user-id/media/recentでしょう。
ただし,これを「表示」に使うのはよいですが,「保存」に使うのは利用規約違反だと思われます。
APIを使っても自動であることには変わりがなく,APIを使って保存できる旨が明示で書かれていないためです。
ちなみに,HTML解析で画像を取得するのは無理です (JavaScriptの解析を必要とする)。
利用規約を見たときに,「標準的な検索エンジンプロトコル ... を用いる場合を除きます」があるので,ざる条項かと思いましたが,ソースを見ると画像は全てJavaScriptで表示していました。
標準的な検索エンジンプロトコルはHTMLのパースとGETによるリクエストしか行わないので,JavaScriptの解析を行って取得してしまったら,おそらく利用規約違反です。
Re: Pythonを用いた画像保存
Posted: 2015年9月25日(金) 02:53
by 通りがかり
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を用いた画像保存
Posted: 2015年9月25日(金) 03:48
by 通りがかり
YuO さんが書きました:技術的には
GET /users/user-id/media/recentでしょう。
ただし,これを「表示」に使うのはよいですが,「保存」に使うのは利用規約違反だと思われます。
APIを使っても自動であることには変わりがなく,APIを使って保存できる旨が明示で書かれていないためです。
ちなみに,HTML解析で画像を取得するのは無理です (JavaScriptの解析を必要とする)。
利用規約を見たときに,「標準的な検索エンジンプロトコル ... を用いる場合を除きます」があるので,ざる条項かと思いましたが,ソースを見ると画像は全てJavaScriptで表示していました。
標準的な検索エンジンプロトコルはHTMLのパースとGETによるリクエストしか行わないので,JavaScriptの解析を行って取得してしまったら,おそらく利用規約違反です。
getで落としたhtmlの解析では無理ということだったんですね。
失礼しました。技術的にはselenium web driverを使うのが一番楽そうかな。
Re: Pythonを用いた画像保存
Posted: 2015年9月25日(金) 08:50
by みけCAT
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)