爬取天气界面数据,在MySQL数据库中建立对应的数据库与表。 利用Python连接MySQL本地数据库并将数据插入(insert)数据库。
时间: 2024-05-19 21:10:46 浏览: 97
好的,下面是具体的步骤:
1. 爬取天气界面数据
可以使用 Python 中的 requests 和 BeautifulSoup 库来爬取天气界面数据。具体的代码如下:
```python
import requests
from bs4 import BeautifulSoup
url = 'http://www.weather.com.cn/weather/101020100.shtml' # 北京天气页面链接
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
html = response.text
soup = BeautifulSoup(html, 'html.parser')
```
2. 建立 MySQL 数据库与表
可以使用 MySQL 命令行或者 GUI 工具,如 Navicat 等,在本地建立一个 MySQL 数据库和对应的表。具体的命令如下:
```mysql
CREATE DATABASE weather;
USE weather;
CREATE TABLE weather_info (
id INT PRIMARY KEY AUTO_INCREMENT,
date VARCHAR(20),
week VARCHAR(20),
weather VARCHAR(20),
temperature VARCHAR(20),
wind_direction VARCHAR(20),
wind_scale VARCHAR(20)
);
```
3. 连接 MySQL 数据库并将数据插入
可以使用 Python 中的 pymysql 库来连接 MySQL 数据库,并将爬取的数据插入到对应的表中。具体的代码如下:
```python
import pymysql
# 建立连接
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='password',
database='weather',
charset='utf8mb4'
)
# 获取游标
cursor = conn.cursor()
# 插入数据
for item in soup.select('.t ul li'):
date = item.select('.time b')[0].text
week = item.select('.time span')[0].text
weather = item.select('.wea')[0].text
temperature = item.select('.tem')[0].text
wind_direction = item.select('.win i')[0].text
wind_scale = item.select('.win em')[0].text
sql = f"INSERT INTO weather_info(date, week, weather, temperature, wind_direction, wind_scale) VALUES ('{date}', '{week}', '{weather}', '{temperature}', '{wind_direction}', '{wind_scale}')"
cursor.execute(sql)
# 提交事务
conn.commit()
# 关闭游标和连接
cursor.close()
conn.close()
```
以上就是将天气界面数据插入到 MySQL 数据库的完整流程了。需要注意的是,在实际项目中,为了防止 SQL 注入攻击,应该使用参数化查询语句来插入数据。
阅读全文