爬取全国天气
仅供学习,请勿滥用
import pandas as pd ,numpy as np
import matplotlib.pyplot as plt
import lxml.etree as tree
import requests,time as T
#**以山东德州为例**
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/51.0.2704.63 Safari/537.36'
}
url =np.array([[fr"https://lishi.tianqi.com/dezhou/20{year}{month}.html"
for month in ['01','02','03','04','05','06','07','08','09','10','11','12']]
for year in ['01','02','03','04','05','06','07','08','09','10','11','12',,'13','14','15',"16",'17','18','19','20']]).flatten()
air_name = ['平均高温', '平均低温', '极端高温', '极端低温', '平均空气质量指数', '空气最好', '空气最差']
weather_data = []
for url_ in url:
T.sleep(0.5)
response = requests.get(url_,headers=headers)
text = response.text
print(response)
html = tree.HTML(text)
time_ = url_.split(sep = r'/')[-1][:-5]
data = html.xpath(r'//div[@class="tian_twoa"]/text()')
# data_name = html.xpath(r'//div[@class="tian_twob"]/text()')
res = data.append(time_)
weather_data.extend([res])