OS: OS X 10.10.4
Python:2.7.10
nginX
uWSGI
AWS:ec2
pythonの勉強にクローラーを作成している者です。
ローカルでcsvファイルを作成することはできるようになったので、次はサーバを利用してcsvをURLにアクセスした人にダウンロードさせるようなものに変えようとしています。
そこで書いたスクリプトが
-- coding: utf-8 --
from bs4 import BeautifulSoup
import re
import urllib2
import sys
import csv
import codecs
from HTMLParser import HTMLParser
from werkzeug.datastructures import Headers
from werkzeug import Response
def application(environ, start_response):
start_response("200 OK",[('Content-Type','text/html')])
sys.stdout = codecs.getwriter('utf_8')(sys.stdout) filename = "tabelog.csv" writecsv = csv.writer(file(filename, 'w'), lineterminator='\n') sys.stdout = codecs.EncodedFile(sys.stdout, 'utf_8') for ...............#スクレイピング部分は長いので割愛 row = (hoge1,hoge2,hoge3) writecsv.writerow(row) header = Headers() header.add('Content-Type', 'application/octet-stream'); header.add('Content-Disposition', 'attachment', filename='tabelog.csv') return Response(w.getvalue(), headers=header)__**
こんな感じなのですが、実行すると
AttributeError: 'ResultSet' object has no attribute 'getvalue'
とエラーが返ってきます・・・。
サーバにスクリプト載せるのも初めてなので、コピペ頼りで書いたのでかなりおかしいかもしれません。
よろしければご教授お願いします。
追記
すみません、ヘッダフィールド記載ミスです・・・。
start_response("200 OK",[('Content-Type','application/octet-stream')])
です。
追記2
try:
return Response(w.getvalue(),headers=header)
except AttributeError:
return "hoge"
という風に例外処理にしてみたらテキストファイルに"hoge"と入力されて返ってくるようになりました。csvでほしいです・・・。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。