鱼C论坛

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

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

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

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

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

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

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

源代码如下:
  1. import requests
  2. from bs4 import BeautifulSoup
  3. import bs4
  4. import openpyxl

  5. def getHTMLText(url):
  6.     try:
  7.         r = requests.get(url, timeout=30)
  8.         r.raise_for_status()
  9.         r.encoding = r.apparent_encoding
  10.         return r.text
  11.     except:
  12.         return ""

  13. def fillData(datalist, html):
  14.     soup = BeautifulSoup(html, "html.parser")
  15.     for tr in soup.table.children:
  16.         if isinstance(tr, bs4.element.Tag):
  17.             tds = tr('td')
  18.             if tds[0].text[0] == '\r':
  19.                 x = tds[0].string[-10:]
  20.                 tds[0].string = x.replace('-', '')
  21.             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])


  22. def saveData(datalist):
  23.     wb = openpyxl.Workbook()
  24.     ws = wb.active
  25.    
  26.     for i in datalist:
  27.         ws.append(i)

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

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

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

可以用xlwt库
  1. wb = xlwt.Workbook()        #创建一个工作簿
  2. ws = wb.add_sheet('sheet1')        #增加一个sheet1的工作表
  3. for i in range(len(datalist)):                #遍历所有行
  4.     for j in range(len(datalist[i])):        #遍历这一行的所有列
  5.         ws.write(i,j,datalist[i][j])        #在i行j列插入数据
  6. wb.save('成都市2月空气质量数据.xls')        #保存
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

回帖奖励 +1 鱼币

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

可以用xlwt库
  1. wb = xlwt.Workbook()        #创建一个工作簿
  2. ws = wb.add_sheet('sheet1')        #增加一个sheet1的工作表
  3. for i in range(len(datalist)):                #遍历所有行
  4.     for j in range(len(datalist[i])):        #遍历这一行的所有列
  5.         ws.write(i,j,datalist[i][j])        #在i行j列插入数据
  6. wb.save('成都市2月空气质量数据.xls')        #保存
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢 成功了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

回帖奖励 +1 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

回帖奖励 +1 鱼币

学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

回帖奖励 +1 鱼币

这题我不会...学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-30 09:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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