马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 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[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()
本帖最后由 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') #保存
|