python爬取网站文本格式数据保存到postgresql数据库

通过自学两周在工作中用python写的一个应用,主要是获取网站txt格式的数据,插入到postgresql数据库中,由于网站txt格式数据每日更新,结合windows的计划任务或Linux的crontab计划来实现每日更新数据的要求。
源格式如下:在这里插入图片描述
处理后的数据库中格式如下:
在这里插入图片描述
源码如下:

#coding=utf-8
#editor by huang hai yao
#2018-12-17
import urllib.request
import psycopg2
url = 'http://218.xx.xx.xx/yubao/data.txt'
#通过weburl地址打开获取txt数据
datas=urllib.request.urlopen(url)
dataset=[]
#循环读取txt每行数据
for data in datas.readlines():
    #去除数据中的空格
    data=data.strip()
    #筛选数据中的空行
    if len(data)!=0:
        #用ANSI编码格式读取txt内容,否则会为乱码
        dataset.append(data.decode('ANSI'))
#读取站点名称
stationName=dataset[0][:15]
jdIndex=dataset[0].index("经度")
wdIndex=dataset[0].index("纬度")
highIndex=dataset[0].index("观测场拔海高度")
#读取经度数据
stationJd=dataset[0][(jdIndex+3):wdIndex-1]
#读取纬度数据
stationWd=dataset[0][(wdIndex+3):highIndex-1]
#读取高度数据
stationHigh=float(dataset[0][(highIndex+8):-2])
#读取气象记录日期时间
stationDate=dataset[1][:11]
#读取站点降水量
stationWater=float(dataset[2][4:-2])
#读取站点最高气温
stationHighTemp=float(dataset[3][5:-1])
#读取站点最低气温
stationLowTemp=float(dataset[4][5:-1])
#读取站点风速
stationWindSpeedIndex=dataset[5].index("米")
stationWindSpeed=dataset[5][5:stationWindSpeedIndex]
#读取站点风速等级
windLevelIndex1=dataset[5].index("(")
windLevelIndex2=dataset[5].index("级")
stationWindLevel=dataset[5][windLevelIndex1+1:windLevelIndex2]
#关闭文件流
datas.close()
#获取Postgresql连接
conn=psycopg2.connect(database="front_db",user="resmg",password="resmgxx",
                      host="2.18.xx.xx",port="5432")
cur=conn.cursor()
#插入数据
sql="insert into jyqxsj108739(zdmc,jd,wd,gccbhgd,jlrq,jsl,zgqw," \
    "zdwd,jdfs,fsdj)values({},{},{},{},{},{},{},{},{},{})"
cur.execute(sql.format(repr(stationName), repr(stationJd), repr(stationWd),
                       repr(stationHigh), repr(stationDate),
                       repr(stationWater), repr(stationHighTemp), repr(stationLowTemp),
                       repr(stationWindSpeed), repr(stationWindLevel)))
conn.commit()
print("插入成功")
conn.close()

注意要点如下:

  1. 读取txt数据需要用对应的txt编码格式去读取,否则就会乱码
  2. sql字符串的格式化问题,在这里用到了repr()方法,会自动在字符串前后加‘
  3. 需要安装psycopg2库,使用pip install 命令安装。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值