用Python网络爬虫抓取天气数据,超简单!

   想爬取中国天气网的数据,并分析一下天气情况?这事儿不难,咱们今天来学一学怎么用Python实现。我们会用到的主要库有requests(用来请求网页数据)、BeautifulSoup(解析网页内容)和pandas(用来分析和存储数据)。话不多说,直接上代码!

 

1. 安装依赖

先装好需要的库:

pip install requests beautifulsoup4 pandas

2. 爬取天气数据

   我们从中国天气网爬取城市天气数据。以北京市为例,爬取实时天气、气温、湿度等信息。

import requests
from bs4 import BeautifulSoup

# 请求网页内容
url = "http://www.weather.com.cn/weather/101010100.shtml"  # 北京的天气页面
response = requests.get(url)
response.encoding = 'utf-8'

# 解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')

# 找到天气数据所在的标签
weather = soup.find('div', class_='t').find('ul').find_all('li')

# 提取数据
forecast = []
for item in weather:
    date = item.find('h1').text.strip()
    temp = item.find('p', class_='tem').text.strip()
    wind = item.find('p', class_='win').text.strip()
    forecast.append({"date": date, "temperature": temp, "wind": wind})

# 打印天气预报
for day in forecast:
    print(f"日期: {day['date']}, 温度: {day['temperature']}, 风速: {day['wind']}")

3. 数据存储和分析

   爬取的数据可以存到pandas DataFrame里,方便后续分析。假设你要分析天气的温度变化,可以按日期存储:

import pandas as pd

# 将数据转化为DataFrame
df = pd.DataFrame(forecast)

# 以日期为索引,展示数据
df.set_index('date', inplace=True)
print(df)

4. 处理爬虫问题

    爬虫最常遇到的问题就是反爬机制。中国天气网这类网站常常会限制访问频率或者要求验证码。这时候你可以加个headers来模拟浏览器访问,或者加个延时,避免被封IP。

添加请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)
设置延时
import time

time.sleep(1)  # 每次请求间隔1秒

 这样就能避免过于频繁的请求被封禁。

5. 总结

   到这里,咱们已经成功爬取并分析了天气数据。其实,爬虫的精髓就在于熟悉网页结构,能快速提取需要的数据。在真实项目中,遇到反爬和解析问题时可以根据具体情况进行调整。

如果你正在学习Python,那么你需要的话可以,点击这里👉Python重磅福利:入门&进阶全套学习资料、电子书、软件包、项目源码等等免费分享!或扫描下方优快云官方微信二维码获娶Python入门&进阶全套学习资料、电子书、软件包、项目源码 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值