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

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

新規登録して質問してみよう
ただいま回答率
85.50%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python 3.x

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

Q&A

解決済

1回答

2569閲覧

python ウェブスクレイピング XBRL

Mario_11

総合スコア95

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python 3.x

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

0グッド

0クリップ

投稿2017/05/17 11:59

###前提・実現したいこと
pythonでXBRLのファイルをスクレイピングしている最中にエラーが発生しました。

###発生している問題・エラーメッセージ

File "XBRL.py", line 22 print 'writing:',title[:30],'...' ^ SyntaxError: Missing parentheses in call to 'print'

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

# coding: utf-8 import requests import xml.etree.ElementTree as ET from collections import defaultdict import json import os from zipfile import ZipFile from StringIO import StringIO def get_link_info_str(ticker_symbol, base_url): url = base_url+ticker_symbol response = requests.get(url) return response.text def get_link(tree, namespace): #print ET.tostring(tree) yuho_dict = defaultdict(dict) for el in tree.findall('.//'+namespace+'entry'): title = el.find(namespace+'title').text if not is_yuho(title): continue print 'writing:',title[:30],'...' _id = el.find(namespace+'id').text link = el.find('./'+namespace+'link[@type="application/zip"]') url = link.attrib['href'] yuho_dict[_id] = {'id':_id,'title':title,'url':url} return yuho_dict def is_yuho(title): if u'有価証券報告書' in unicode(title): return True else: return False def write_download_info(ofname): with open(ofname,'w') as of: json.dump(dat_download, of, indent=4) def download_all_xbrl_files(download_info_dict,directory_path): for ticker_symbol, info_dicts in download_info_dict.items(): save_path = directory_path+ticker_symbol if not os.path.exists(save_path): os.mkdir(save_path) for _id, info_dict in info_dicts.items(): _download_xbrl_file(info_dict['url'],_id,save_path) def _download_xbrl_file(url,_id,save_path): r = requests.get(url) if r.ok: #print url path = save_path+'/'+_id if not os.path.exists(path): os.mkdir(path) r = requests.get(url) z = ZipFile(StringIO(r.content)) z.extractall(path) # unzip the file and save files to path. if __name__=='__main__': base_url = 'http://resource.ufocatch.com/atom/edinetx/query/' namespace = '{http://www.w3.org/2005/Atom}' t_symbols = ('1301','2432',) for t_symbol in t_symbols: response_string = get_link_info_str(t_symbol, base_url) ET_tree = ET.fromstring( response_string ) ET.register_namespace('',namespace[1:-1]) dat_download = defaultdict(dict) # get download file info info_dict = get_link(ET_tree,namespace) dat_download[t_symbol] = info_dict ofname = os.getcwd()+'/downloaded_info/dat_download_'+t_symbol+'.json' write_download_info(ofname) directory_path = os.getcwd()+'/xbrl_files/' download_all_xbrl_files(dat_download,directory_path)

###試したこと

print ('writing:',title[:30],'...')とカッコをつけてみましたが同じエラーが出ました
エラーの意味はカッコをつけてくださいと言う意味ですか??

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

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

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

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

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

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

guest

回答1

0

ベストアンサー

Python

1print('writing:' + title[:30] + '...') 2

Python 3.x系printの括弧を省略することは出来ません。
また、print(の間にスペースは不要です。print()ときちんと呼び出しましょう。

投稿2017/05/17 12:05

編集2017/05/17 12:08
honami

総合スコア308

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

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

Mario_11

2017/05/17 12:14

できました。ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問