Gym_Rat 发表于 2019-3-11 16:07:08

鱼币相赠!求教数据写入excel出错问题

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

爬取数据时写入excel失败,报错如下:

本来以为是日期数据的格式问题,但对字符串操作后发现还是不行。
报错有点看不懂,求教!

源代码如下:
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.text == '\r':
                x = tds.string[-10:]
                tds.string = x.replace('-', '')
            datalist.append(.string, tds.string, tds.string, tds.string, tds.string, tds.string, tds.string, tds.string, tds.string, tds.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()

snaker 发表于 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)):        #遍历这一行的所有列
      ws.write(i,j,datalist)        #在i行j列插入数据
wb.save('成都市2月空气质量数据.xls')        #保存

Gym_Rat 发表于 2019-3-12 16:09:06

snaker 发表于 2019-3-12 13:57
可以用xlwt库

谢谢 成功了

心驰神往 发表于 2020-11-26 15:00:27

{:10_254:}

aironeng 发表于 2020-11-27 08:55:16

学习

896654661 发表于 2020-11-29 15:09:31

这题我不会...学习了
页: [1]
查看完整版本: 鱼币相赠!求教数据写入excel出错问题