爬取天气数据并写入数据库中的总结


 sql = ' INSERT INTO table_name (city,air_quality,AQI,PM2_5,dt) VALUES (%s,%s,%s,%s,%s)'
try:
 cur.executemany(sql,tuple(data))#data 是列表,但是里面的元素是元组
print( "now: ……Done……")
 #对于写入数据库,这个fetchall没有用,但是对于查询,他返回的是查询的结果。
 #print cur.fetchall()
 mysql_conn.commit()
except MySQLdb.Error,e:
 f = open( 'weather.log', 'a')
 print "mysql发生异常,异常原因在log文件中"
 traceback.print_exc(file=f)

#如果发生异常,回滚数据
 mysql_conn.rollback()
finally:
 cur.close()
 mysql_conn.close()
 这样操作的时间更快,如果你插入100万条数据,用cur.execute()执行,时间将会更长。这样的效率比较高。
 另外在数据库的写入过程中,会出现异常,要对异常进行捕获,并且,发生异常之后要进行回滚,这样保证数据能正确的写入数据库。

item_date = re.finditer( r '(%s)(</td>\s* <td class=\"aqi-lv)(\d)(\">\s* %s{1,4} </td>\s* <td>)(\d{1,3} )(\s* </td>\s+ <td>\d{1,3} </td>\s* )(<td>)(\d{1,3} )(\s* </td>)'
           %(past_one_day, u '[\u4e00-\u9fa5]'),url_read)
这个我之前写过,可以将字符串制定,去内容中匹配。比如你看的一个网页内容,有北京,河南,郑州,南京,别的你都不想看。
这时候,用这个方法去过滤,效果还是不错的。其中u开头的东西,是用来匹配中文字符。

在写入到文件的时候,推荐使用codecs的open方法,这个方法可以指定写入或者打开文件,按照某种编码格式。
其中爬取的网站是:url = "http://www.tianqihoubao.com/aqi/"+province_set[i]+ "-"+month+ ".html"




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想做个自由的人

随缘吧打赏与否还是会坚持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值