Python爬取天气数据并将数据转为列表格式

import requests
import re
from bs4 import BeautifulSoup
import json

link = 'http://www.weather.com.cn/weather/101200101.shtml'
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134'}
r=requests.get(link,headers=headers)
response = r.content.decode('utf-8')#中文解码

soup=BeautifulSoup(response,"html.parser")#解析网页文本
text=soup.find_all(text=re.compile("observe24h_data"))#寻找有相关内容的标签里的内容
#print(type(text))
#print(text)


wheather_data=str(text).lstrip(r"['\nvar observe24h_data = ").rstrip(r";\n']")#转为字符串类型,去除非json格式数据(去头去尾)
#print(type(wheather_data))
#print(wheather_data)


json=json.loads(wheather_data)
#print(json['od']['od2']) #字典的访问方式,前面两次字典套娃,后面套娃列表格式

#获取列表
temperatrue=[]
time=[]
humidity=[]
air_quality=[]
for t in json['od']['od2']:
    time.append(t['od21'])#获取时间列表
    temperatrue.append(t['od22']) #获取温度列表
    humidity.append(t['od27']) #获取湿度列表
    air_quality.append(t['od28'])#获取空气质量列表
# print(time)
# print(temperatrue)
# print(humidity)
# print(air_quality)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值