как читать данные URL - PullRequest
       7

как читать данные URL

0 голосов
/ 12 марта 2010
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()
      #self.response.out.write(st)

def main():
  application = webapp.WSGIApplication([('/', MainHandler)],
                                       debug=True)
  util.run_wsgi_app(application)


if __name__ == '__main__':
  main()

Я получаю сообщение об ошибке в строке ***, это не чтение данных URL.

1 Ответ

3 голосов
/ 12 марта 2010

Вы прочитали результат дважды (один раз в self.responce.out.write и один раз в строке ниже). Сначала сохраните значение в виде строки:

htmlData = result.read()
self.response.out.write(htmlData)
trak.htmlData = htmlData

Я бы ожидал, что result.read() переместится в конец потока result - представьте, что это книга: читая книгу, вы переворачиваете страницу за страницей. Когда вы добираетесь до конца, попытка чтения становится трудной - если вы не перематываете в начало.

Также, пожалуйста, укажите сообщение об ошибке - это часто очень помогает при диагностике проблемы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...