爬虫天气数据是 js 数据怎么录入 excel 啊?

2017-10-05 15:52:42 +08:00
 jin6220
http://tianqi.2345.com/t/wea_history/js/56294_20112.js
3926 次点击
所在节点    Python
22 条回复
qiayue
2017-10-05 15:56:52 +08:00
掐头去尾就是 json
112Cookie
2017-10-05 16:07:21 +08:00
python 直接写 xls。。
jin6220
2017-10-05 16:07:43 +08:00
@qiayue 先把首尾的 var weather_str=、分号去掉,变成 json,再存入表格里吗
好久没用过把入门级的那点知识也忘了差不多了
qiayue
2017-10-05 16:17:59 +08:00
json 解码之后,再按照 xls 格式去写
zagreb
2017-10-05 16:27:46 +08:00
jin6220
2017-10-05 16:34:03 +08:00
@zagreb 谢谢 虽然看不懂啊 ,业余非专业,现在去找找别人的代码看怎么处理类似情况的。
8qwe24657913
2017-10-05 16:43:32 +08:00
@qiayue #1 然而单引号……好在数据里应该不会出现单双引号,所以无脑 replace 大概也没问题……
asuraa
2017-10-05 18:12:14 +08:00
保存 csv 不就行了?
table 标签嘛
shenyu1996
2017-10-05 18:23:04 +08:00
直接用字符串模板写 cvs 逗号分隔, 好像 /d/n 换行来着
jin6220
2017-10-05 19:07:35 +08:00
@luodaoyi
找了个 csv 案例,
import csv
with open('names.csv','w') as csvfile:
fieldnames = ['first_name','last_name']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

但是,天气那个 js 数据怎么每一天数据单独写入一行啊?

fieldnames = ['Ymd',‘ bWendu',’ yWendu',’ fengxiang','fengli ’]
然后继续把每个日期的数据像字典这样放进吗?
‘ ymd:'2011-02-01',’ bWendu ‘:'9℃',’ yWendu ‘:'0℃',’ tianqi ‘:'多云',’ fengxiang ‘:'北风',’ fengli ‘:'微风'
就是不知道如何完全自动化。。。
dawnven
2017-10-05 19:15:24 +08:00
可以正则提取成 csv
hcymk2
2017-10-05 19:22:59 +08:00
明显不是 json ,而是 jsonp.
asuraa
2017-10-05 20:08:06 +08:00
@jin6220 正则提取 json,然后写入就行了。。。
python 直接用 xlwt 写就行了
ZXCDFGTYU
2017-10-05 20:26:36 +08:00
掐头去尾 json+1
jin6220
2017-10-05 20:51:01 +08:00
import xlwt
#创建 workbook 和 sheet 对象
workbook = xlwt.Workbook() #注意 Workbook 的开头 W 要大写
sheet1 = workbook.add_sheet('sheet1',cell_overwrite_ok=True)
sheet2 = workbook.add_sheet('sheet2',cell_overwrite_ok=True)
#向 sheet 页中写入数据
sheet1.write(0,0,'this should overwrite1')
sheet1.write(0,1,'aaaaaaaaaaaa')
sheet2.write(0,0,'this should overwrite2')
sheet2.write(1,2,'bbbbbbbbbbbbb')

但实际上数据输入不可能是手一个一个录入啊,http://tianqi.2345.com/t/wea_history/js/56294_20112.js ,那么多数据,真不知道怎么自动化输入,这种挫败感让人很让人伤心加恼火。。。
sola97
2017-10-05 21:06:24 +08:00
@jin6220 一组数据往里添一行就行了,不用定坐标
mkeith
2017-10-05 21:11:33 +08:00
那么多的天气 API 非要用这个啊?
kangkang
2017-10-05 21:13:18 +08:00
搞成 json 用 python 写进 excel
Sapp
2017-10-05 21:46:06 +08:00
这不就是 json 吗?
geelaw
2017-10-05 22:00:03 +08:00
两个命令用管道连接一下即可

ConvertFrom-Json | ConvertTo-Csv

然后 Excel 打开,另存为 xls(x) 即可。

如果想直接弄成 xls(x),可以用 Excel.Application 对象操作 Excel https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-object-excel

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/395519

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX