我正在写博客并同时学习网络开发。我想了解有关 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,并且我也厌倦了 webapp2 的请求处理程序,例如self.request.path_url
无济于事。
我正在使用 Google App 引擎并使用 jinja2 模板引擎。
谢谢。