您的位置:首页 > 其它

BAE(疑惑)

2015-09-10 16:44 218 查看
同样的程序,在本机上跑的好好的。部署到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来排错哎。。。嘿嘿

调代码,测试,还是不行的话。

其次,问同学,同事

最后,还不行的话,就到相应的技术讨论群发帖子寻求帮助。

如果还涉及到其他第三方的平台,调用别人的库神马之类的话

第一反应,是好好阅读官方提供的手册,而不是第一反应去网上海搜。

调代码,测试,还是不行的话。

问同学,同事

还不行的话,就到相应的技术讨论群发帖子寻求帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bae