python爬虫 - python2.7 函数内变量未定义

 狸花殿并 发布于 2022-10-26 19:04

环境 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()
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有