python爬虫 - python2.7 函数内变量未定义
阿神
阿神 2017-04-18 09:41:37
[Python讨论组]

环境 python2.7 win10 64位

一个爬虫,没有函数,里面的变量在循环里能正常使用,将这些代码用一个function包起来,运行方法,说变量未定义。这是为什么啊?变量均是在函数内部定义,使用的时候是在变量下面的一个循环里使用。

手机码字谢谢

不好意思这是代码):

for ava in avtreeres:
    av_day=''
    for ix in allcontentx:
            if(u'生日' in ix):
                print '是存在生日的'
                av_day=ix[4:]
                print av_day
            else:
                av_day='11'
    if actorhasyesdata!=None and actorhasyesdata!='':
        print 'has'
    else:
        print av_day   #这里就出错了,说未定义,并且av_day 的值不是11

更新代码:

allcontentx=avinfox.xpath("/html/body/p/p/p[1]/p[2]/p/text()")
for ix in allcontentx:
            if(u'生日' in ix):
                print '是存在生日的'
                av_day=ix[4:]
                print av_day
            else:
                av_day=''

            if(u'身高' in ix):
                print '是有身高的'
                av_height=ix[4:]
                print av_height
            else:
                av_height=0

        avinfoxr=avinfox.xpath("/html/body/p/p/p[1]/h2[1]/a[2]/text()")
        print avinfoxr[0]

        # sql actor
        actorhas="SELECT namex FROM actor WHERE namex='%s'" % (avinfoxr[0])
        actorhasyes=cur.execute(actorhas)
        actorhasyesdata=cur.fetchone()
        db.commit()
        if actorhasyesdata!=None and actorhasyesdata!='':
            print 'has'
        else:
            sqlactor="INSERT INTO actor (namex,birth,height) VALUES ('%s','%s',%s)" % (avinfoxr[0],av_day,av_height)
            print sqlactor
            ks=cur.execute(sqlactor)
            db.commit()
阿神
阿神

闭关修行中......

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号