一个天气预报的例子,并存入数据库

一个天气预报的例子,并存入数据库

import urllib
import re
import MySQLdb
def main():
    # Show Information
    print '中国城市天气查询'

    # Get Parameters
    city = raw_input('请输入您要查询天气的城市名字(如汕头,广州...) : ')

    # Request For The Web Page
    params = urllib.urlencode({'city':city})
    webpage = urllib.urlopen('http://weather.news.sohu.com/city_inc.php?%s' % params)
    webdata = webpage.read().replace('\n', '')

    # Match The Useful Information
    pattern = re.compile('<td class=blu01>([^<]*)<br>([^<]*)<br>([^<]*)<br>([^<]*)')
    db=MySQLdb.connect(host='localhost',      #连接数据库
                      user='root',
                      passwd='123456',
                      db='messatge',
                      charset='gb2312')        #设置字符编码
    x = 0
    for weather in pattern.findall(webdata):      
        if x == 0:
            riqi='今天'
        elif x == 1:
            riqi='明天'
        else:
            riqi='后天'
        for i in range(4):
            print weather.strip()
        tianqi=weather[0]
        wendu=weather[1]
        fengli=weather[2]
        jiangshuilv=weather[3]
        sss="INSERT INTO message VALUES('%s','%s','%s','%s','%s')"%(riqi,tianqi,wendu,fengli,jiangshuilv)
       # print sss
        cur=db.cursor()
            #cur.execute("INSERT INTO message VALUES('%s','%s','%s','%s','%s')" % ( weather[0].strip(),weather[1].strip(),weather[2].strip(),weather[3].strip()))
        cur.execute(sss)
        db.commit()
        x += 1
    cur.close()
    db.close()


if __name__ == '__main__':
    main()
不错,顶一个。
我有一个自动抓取中央气象台的后台程序,每天都会自动更新到数据库。
以前写过,值得借鉴
运行代码出现以下报错,请问是不是我的MySQLdb没装好>

Traceback (most recent call last):
  File "E:\PYTHON25\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 307, in RunScript
    debugger.run(codeObject, __main__.__dict__, start_stepping=0)
  File "E:\PYTHON25\Lib\site-packages\pythonwin\pywin\debugger\__init__.py", line 60, in run
    _GetCurrentDebugger().run(cmd, globals,locals, start_stepping)
  File "E:\PYTHON25\Lib\site-packages\pythonwin\pywin\debugger\debugger.py", line 631, in run
    exec cmd in globals, locals
  File "E:\PYTHON25\dq.py", line 49, in <module>
    main()
  File "E:\PYTHON25\dq.py", line 22, in main
    charset='gb2312')        #设置字符编码
  File "E:\PYTHON25\lib\site-packages\MySQLdb\__init__.py", line 74, in Connect
    return Connection(*args, **kwargs)
  File "E:\PYTHON25\lib\site-packages\MySQLdb\connections.py", line 170, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
Access denied for user 'root'@'localhost' (using password: YES)
错误在这个,密码不正确,或者localhost链接不上,检查下
不错,收了