鱼C论坛

 找回密码
 立即注册
查看: 1797|回复: 5

[已解决]鱼币相赠!求教数据写入excel出错问题

[复制链接]
发表于 2019-3-11 16:07:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Gym_Rat 于 2019-3-11 16:08 编辑

爬取数据时写入excel失败,报错如下:
1552291475(1).png
本来以为是日期数据的格式问题,但对字符串操作后发现还是不行。
报错有点看不懂,求教!

源代码如下:
import requests
from bs4 import BeautifulSoup
import bs4
import openpyxl

def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ""

def fillData(datalist, html):
    soup = BeautifulSoup(html, "html.parser")
    for tr in soup.table.children:
        if isinstance(tr, bs4.element.Tag):
            tds = tr('td')
            if tds[0].text[0] == '\r':
                x = tds[0].string[-10:]
                tds[0].string = x.replace('-', '')
            datalist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string, tds[4].string, tds[5].string, tds[6].string, tds[7].string, tds[8].string, tds[9].string])


def saveData(datalist):
    wb = openpyxl.Workbook()
    ws = wb.active
    
    for i in datalist:
        ws.append(i)

    wb.save("成都市2月空气质量数据.xlsx")

def main():
    url = "http://www.tianqihoubao.com/aqi/chengdu-201902.html"
    datalist = []
    html = getHTMLText(url)
    fillData(datalist, html)
    saveData(datalist)

main()
最佳答案
2019-3-12 13:57:08
本帖最后由 snaker 于 2019-3-12 14:02 编辑

可以用xlwt库
wb = xlwt.Workbook()        #创建一个工作簿
ws = wb.add_sheet('sheet1')        #增加一个sheet1的工作表
for i in range(len(datalist)):                #遍历所有行
    for j in range(len(datalist[i])):        #遍历这一行的所有列
        ws.write(i,j,datalist[i][j])        #在i行j列插入数据
wb.save('成都市2月空气质量数据.xls')        #保存
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-12 13:57:08 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +1 鱼币

本帖最后由 snaker 于 2019-3-12 14:02 编辑

可以用xlwt库
wb = xlwt.Workbook()        #创建一个工作簿
ws = wb.add_sheet('sheet1')        #增加一个sheet1的工作表
for i in range(len(datalist)):                #遍历所有行
    for j in range(len(datalist[i])):        #遍历这一行的所有列
        ws.write(i,j,datalist[i][j])        #在i行j列插入数据
wb.save('成都市2月空气质量数据.xls')        #保存
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-12 16:09:06 | 显示全部楼层

谢谢 成功了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-26 15:00:27 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-27 08:55:16 | 显示全部楼层

回帖奖励 +1 鱼币

学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-29 15:09:31 | 显示全部楼层

回帖奖励 +1 鱼币

这题我不会...学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 06:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表