私はブログを書いていると同時に、ウェブ開発を学んでいます。JSON についてもっと知りたいので、ブログのコンテンツ全体を JSON にエクスポートし、後で XML にエクスポートする方法を実装しようとしています。途中で多くの問題にぶつかっています。最大の問題は、JSON/XML として動的にレンダリングしたいページの URL を取得することです。私のウェブサイトのコードはここにあります。まだコメントする必要があり、多くの機能を実装する必要があります。内容を JSON にエクスポートする主なクラスは次のとおりです。
class JSONHandler(BaseHandler):
#TODO: get a way to gt the url from the request
def get(self):
self.response.headers['Content-Type'] = 'application/json'
url = "http://www.bigb-myapp.appspot.com/blog"
#url = self.request.path_url
logging.info(url)
page = urllib2.urlopen(url).read()
soup = BeautifulSoup(page)
subject_list = []
day_list = []
content_list = []
subjects = soup.findAll('div', {'class' : 'subject-title'})
days = soup.findAll('div', {'class' : 'day'})
contents = soup.findAll('div', {'class' : 'post'})
for subject in subjects:
subject_list.append(subject.findAll(text = True))
for day in days:
day_list.append(day.findAll(text = True))
for content in contents:
content_list.append(content.findAll(text = True))
i = 0
for s, d, c in subject_list, day_list, content_list:
json_text = json.dumps({'subject': s[i][i],'day': d[i][i], 'content': c[i][i]})
i += 1
self.write(json_text)
印刷機能も間違っていると思いますが、それは簡単な部分です。私が言ったように、URL を取得することは大きな困難であることがわかっています。
私は環境変数からURLを取得しようとしましたが、webapp2のリクエストハンドラーも使い物self.request.path_url
にならなくなりました。
私は Google App エンジンを使用しており、jinja2 テンプレート エンジンを使用しています。
ありがとう。