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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2586閲覧

bingAPIを使って画像をスクレイプしたいです。

hay

総合スコア8

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2016/12/27 06:15

###前提・実現したいこと
bingAPIを使って画像をスクレイプしたいです。
githubで落ちていたコードをお借りしましたが、エラーが出てしまいました。

###発生している問題・エラーメッセージ
Traceback (most recent call last):
File "scrape2.py", line 71, in <module>
search_result = bing_search_api(search_query)
File "scrape2.py", line 35, in bing_search_api
search_response_json = search_response.json()
File "/Users/xxxxx/.pyenv/versions/TensorFlow/lib/python3.5/site-packages/requests/models.py", line 842, in json
self.content.decode(encoding), **kwargs
File "/Users/xxxxx/Desktop/denpa/json/init.py", line 319, in loads
return _default_decoder.decode(s)
File "/Users/xxxxx/Desktop/denpa/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/Users/xxxxx/Desktop/denpa/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

###該当のソースコード

python

1import json 2import os 3import requests 4import sys 5import urllib.request 6 7 8BING_API_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX' 9BING_API_URL = 'https://api.datamarket.azure.com/Bing/Search/' 10 11 12def bing_search_api( 13 search_query = 'xxxx', 14 search_market='ja-JP', 15 search_adult='Off', 16 search_type='Image', 17 search_top=50 18): 19 20 21 search_url = \ 22 BING_API_URL + search_type + \ 23 '?Query=%27' + urllib.request.quote(search_query) + \ 24 '%27&Market=%27' + urllib.request.quote(search_market) + \ 25 '%27&Adult=%27' + urllib.request.quote(search_adult) + \ 26 '%27&$top=' + str(search_top) + \ 27 '&$format=json' 28 29 auth = requests.auth.HTTPBasicAuth('', BING_API_KEY) 30 31 32 search_response = requests.get(search_url, auth=auth) 33 34 search_response_json = search_response.json() 35 36 return search_response_json 37 38 39def get_image_url_list(json_data): 40 41 image_url_list = [] 42 for item in json_data['d']['results']: 43 image_url_list.append(item['MediaUrl']) 44 45 return image_url_list 46 47 48def get_image(image_url_list): 49 50 counter = 0 51 total_image_numger = len(image_url_list) 52 for image_url in image_url_list: 53 progress = str(counter+1) + "/" + str(total_image_numger) 54 print ("Downloading") + image_url + " (" + progress + ")" 55 56 image_file = requests.get(image_url) 57 58 root, ext = os.path.splitext(image_url) 59 image_file_name = str(counter) + ext 60 61 f = open(image_file_name, 'wb') 62 f.write(image_file.content) 63 f.close() 64 counter += 1 65 66 67if __name__ == '__main__': 68 args = sys.argv 69 search_query = " ".join(args[1:]) 70 search_result = bing_search_api(search_query) 71 image_url_list = get_image_url_list(search_result) 72 73 get_image(image_url_list) 74 print ("Done.")

###試したこと
似たような投稿を見つけたので、jsonフォルダを複製して直下に置きましたが、同様のエラーメッセージが出ました。
https://teratail.com/questions/35982

###補足情報(言語/FW/ツール等のバージョンなど)
python3

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

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

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

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

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

guest

回答1

0

ベストアンサー

bingAPIからのresponceはちゃんと来ていますか?
そちらも確認してみてください。

投稿2016/12/28 03:12

noisy_max

総合スコア46

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問