BAE(疑惑)

同样的程序,在本机上跑的好好的。部署到BAE python-worker服务后,出现问题。

比如:同样一个url, 在本地返回改地址的HTML网页时,length 为 98551

可是部署到BAE python-worker上后,length 只有28831。
为什么啊?烦请版主大人帮忙看一下,调了好几天了,闹心
代码如下:(python)


#-*- coding:utf-8 -*-
import time
import sys
import urllib2
import urllib
import re
import MySQLdb

def start():
       start = time.clock()

       #抓取指定url的网页
       user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
       headers = { 'User-Agent' : user_agent }
       try:
         request = urllib2.Request("http://news.163.com/domestic/",headers = headers)
         response = urllib2.urlopen(request)
         content=response.read()   #content 为返回的网页.  本地长度为93826, ;在BAE上的爬虫,抓取的同样的网页,返回的长度只有28181。为什么啊???
       except urllib2.URLError, e:   
         if hasattr(e,"code"):
           print e.code
         if hasattr(e,"reason"):
           print e.reason

       print type(content)
       print len(content)  #content网页长度

       #解析,抓取内容
       content_extract=re.findall("<p>(.*)<br />",content)
       print len(content_extract)  #抓取的本网页新闻条数


       #连接BAE免费提供的数据库
       dbname = "YEAULFAnYANYttSNeGgA"
       api_key = "bb5dbc2a290f452d8faa008c289b33fd"
       secret_key = "44c22ffc6fea4937b880292edbaf6bb7"
       mydb = MySQLdb.connect(
         host   = "sqld.duapp.com",
         port   = 4050,
         user   = api_key,
         passwd = secret_key,
         db = dbname)


       cursor = mydb.cursor()
       print "cursor connect"

       #content_extract 是个list,现在进行插入数据库

       for i in range(0,len(content_extract)):
          print "ready to insert....."   
          s=content_extract 
          value2=["",s]
          cmd = "insert into content(id,cont) values(%s,%s)"
          cursor.execute(cmd,value2)
          print "have inserted"  

       mydb.close()

       end = time.clock()
       print "read: %f s" % (end - start)


while True:
    time.sleep(3)
    try:
        start()
    except Exception, e:
        sys.stdout.write(" error!\n")
        sys.stdout.flush()

PS:
当遇到技术难题的时候,你会怎么办。
首先,如果只是涉及到编码,bug的时候,当然是自己一个点,一个模块,整体功能,进行测试,排错。我目前只会用print来排错哎。。。嘿嘿
调代码,测试,还是不行的话。
其次,问同学,同事
最后,还不行的话,就到相应的技术讨论群发帖子寻求帮助。

如果还涉及到其他第三方的平台,调用别人的库神马之类的话
第一反应,是好好阅读官方提供的手册,而不是第一反应去网上海搜。
调代码,测试,还是不行的话。

问同学,同事
还不行的话,就到相应的技术讨论群发帖子寻求帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值