python爬虫如何爬取天气预报表-创新互联
小编给大家分享一下python爬虫如何爬取天气预报表,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
为企业提供成都做网站、网站建设、网站优化、成都营销网站建设、竞价托管、品牌运营等营销获客服务。创新互联公司拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!1 构造URL列表
每个月份的历史天气数据是通过一个 Javascript 文件获取的。因此,我们需要构造带爬取数据的 URL 列表,再批量爬取数据。
# 构造2019全年的月份列表 months = [] for year in (2019,): for month in range(12): months.append("%d%02d"%(year, month+1)) todo_urls = [ "http://tianqi.2345.com/t/wea_history/js/"+month+"/58457_"+month+".js" for month in months ]
2 批量下载数据
使用 requests 库获取 js 文件中的数据,并存到 datas 变量中。
import requests datas = [] for url in todo_urls: r = requests.get(url, headers = headers) if r.status_code!=200: raise Exception() # 去除javascript前后的字符串,得到一个js格式的JSON data = r.text.lstrip("var weather_str=").rstrip(";") datas.append(data)
3 解析数据
我们从 js 文件获取的数据 json 格式存储的,需要使用 demjson 对数据进行解析。
# 解析所有月份的数据 all_datas = [] for data in datas: tqInfos = demjson.decode(data)["tqInfo"] all_datas.extend([x for x in tqInfos if len(x)>0])
4 将结果导入 csv 文件
import csv with open('./hangzhou_tianqi_2019.csv', 'w', newline='', encoding='utf-8') as csv_file: writer = csv.writer(csv_file) columns = list(all_datas[0].keys()) writer.writerow(columns) for data in all_datas: writer.writerow([data[column] for column in columns])
5 结果展示
以上是python爬虫如何爬取天气预报表的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
当前题目:python爬虫如何爬取天气预报表-创新互联
网页URL:http://azwzsj.com/article/djijhp.html