网页爬取天气数据并把爬取的信息数据存储到mysql数据中
时间: 2024-06-08 10:05:19 浏览: 212
基于mysql数据库的天气查询系统
5星 · 资源好评率100%
首先,需要安装 requests 和 BeautifulSoup 库来完成网页爬取;以及 mysql-connector-python 库来完成数据库连接和数据存储。
安装方式:
```
pip install requests
pip install beautifulsoup4
pip install mysql-connector-python
```
接下来,可以先编写一个爬取天气数据的函数,例如:
```python
import requests
from bs4 import BeautifulSoup
def get_weather(city):
url = f'http://www.weather.com.cn/weather/{city}.shtml'
r = requests.get(url)
r.encoding = 'utf-8'
soup = BeautifulSoup(r.text, 'html.parser')
# 获取天气信息
weather = soup.find('p', class_='wea').text.strip()
# 获取温度信息
temp = soup.find('p', class_='tem').text.strip().replace('℃', '')
# 获取风向风速信息
wind = soup.find('p', class_='win').text.strip()
return weather, temp, wind
```
其中,city 参数为城市代码,在网站上可以找到对应的代码。
然后,可以编写一个函数来连接数据库并将数据存储到数据库中,例如:
```python
import mysql.connector
def save_to_mysql(city, weather, temp, wind):
# 连接数据库
conn = mysql.connector.connect(
host='localhost',
user='root',
password='password',
database='weather'
)
# 创建游标
cursor = conn.cursor()
# 插入数据
sql = "INSERT INTO weather (city, weather, temp, wind) VALUES (%s, %s, %s, %s)"
val = (city, weather, temp, wind)
cursor.execute(sql, val)
# 提交事务
conn.commit()
# 关闭连接
cursor.close()
conn.close()
```
其中,需要先在数据库中创建名为 weather 的表格,用于存储天气数据。
最后,可以编写一个主函数来实现整个流程,例如:
```python
if __name__ == '__main__':
# 爬取天气数据
city = '101020100' # 北京市
weather, temp, wind = get_weather(city)
# 存储到数据库
save_to_mysql(city, weather, temp, wind)
```
这样,就可以完成网页爬取天气数据并将数据存储到 mysql 数据库中的功能了。
阅读全文