指定城市|历史日度气温数据获取【附代码】

一、指标展示与数据样例

指定城市|历史日度气温数据获取【附代码】_第1张图片

 目标网址信息在代码中,网页保存了2011年01月至最近一个月份(比如现在是2022年05月,就更新到2022年04月)的日度最高温、最低温、风向、气候类型数据,可供大家参考分析。

二、代码



import os
import requests
import xlwt
from lxml import etree


headers = {
    # (1) 更改UA信息
    'User-Agent':'输入您的浏览器UA'
    }

# (2) 更改目标城市名——拼音形式
city8 = ['guangzhou','beijing','shenzhen','chongqing','shanghai','nanjing','wuhan','chengdu']

# (3) 输入希望获取的时间窗:样例中是2021年01月-2021年12月
month2021 = ['2021%02d'%m for m in range(1,13)]

def getWeather(city,month):
    item = []
    url = 'https://lishi.tianqi.com/'+city+'/'+month+'.html'
    response = requests.get(url=url,headers=headers)
    page_text=response.content.decode('utf-8')
    root=etree.HTML(page_text)
    li_list = root.xpath('/html/body/div[7]/div[1]/div[4]/ul/li')
    print(city,month,len(li_list))
    dates,highs,lows,types=[],[],[],[]
    for li in li_list:
        date = li.xpath('./div[1]/text()')
        high = li.xpath('./div[2]/text()')
        low = li.xpath('./div[3]/text()')
        weatype = li.xpath('./div[4]/text()')
        dates.extend(date)
        highs.extend(high)
        lows.extend(low)
        types.extend(weatype)
    item.append(dates)
    item.append(highs)
    item.append(lows)
    item.append(types)
    return item
    
    
# (4) 更改数据存放路径
file = r'C:\Users\86173\Desktop\\'+'2021年城市气温数据'
isExists = os.path.exists(file)
if not isExists:
    os.makedirs(file)
os.chdir(file)
head=['日期','最高温','最低温','气候类型']
for i in range(8):
    book = xlwt.Workbook(encoding='utf-8')
    for j in range(12):
        sheet = book.add_sheet(str(month2021[j]))
        item = getWeather(city8[i],month2021[j])
        for head_i in range(0,4):
            sheet.write(0,head_i,head[head_i])
        for col in range(0,4):
            a = item[col]
            for row in range(len(a)):
                sheet.write(row+1,col,a[row])
        book.save('./2021年气温数据'+city8[i]+'.xls')

结构和另一篇收集空气质量的差不多,xpath可以帮助大家更好的找到对应指标列,有目的地进行信息收集,理解起来也比较容易。

ps:(1)~(4)是需要您根据自身情况自行修改的地方噢~


Q:浏览器UA怎么找?

step1:当前网页(任意也行)按Fn+F12(或者右键→检查)

指定城市|历史日度气温数据获取【附代码】_第2张图片

 step2:(在不关闭上面部分的情况下)点网页任意空白处右键→重新加载

指定城市|历史日度气温数据获取【附代码】_第3张图片

 step3:点击headers→下拉到底部,找到useragent→复制冒号后边的信息粘贴到(1)中即可

指定城市|历史日度气温数据获取【附代码】_第4张图片

 


三、结果展示

过程:

指定城市|历史日度气温数据获取【附代码】_第5张图片

结果:

指定城市|历史日度气温数据获取【附代码】_第6张图片

指定城市|历史日度气温数据获取【附代码】_第7张图片

 

你可能感兴趣的:(网页爬虫实例,python,爬虫,机器学习)