获取网址数据时出错

时间:2010-03-12 16:26:58

标签: python google-app-engine

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from google.appengine.ext import db
from google.appengine.api import urlfetch

class TrakHtml(db.Model):
  hawb = db.StringProperty(required=False)
  htmlData = db.TextProperty()

class MainHandler(webapp.RequestHandler):
  def get(self):
    Traks = list()
    Traks.append('93332134')
    #Traks.append('91779831')
    #Traks.append('92782244')
    #Traks.append('38476214')

    for st in Traks :
      trak = TrakHtml()
      trak.hawb = st
      url = 'http://etracking.cevalogistics.com/eTrackResultsMulti.aspx?sv='+st

      result = urlfetch.fetch(url)
      self.response.out.write(result.read())

      trak.htmlData = result.read()
      trak.put()

result.read()没有提供整个文件,它给出了一些部分。 trak.htmlDataTextProperty(),因此它必须存储整个文件,我只想要它。

3 个答案:

答案 0 :(得分:1)

你两次致电result.read()。这可能就是为什么它分散了。

答案 1 :(得分:0)

此链接包含有关urlfetch.fetch(url)

的返回值的信息

http://code.google.com/appengine/docs/python/urlfetch/responseobjects.html

看起来你想做result.content.read()

答案 2 :(得分:0)

我注意到你正在调用read()两次,这可能是问题所在。

当我查看urlfetch.fetch()的规范时,它会返回response object

内容可直接作为result.contents访问,因此您不需要调用(undefined ??)读取函数。