给我一个爬虫爬取娄底市娄星区近30天天气数据代码,包括网络请求,html解析,数据清洗,数据存储进mysql数据库
时间: 2024-04-02 20:35:14 浏览: 84
利用python3爬虫爬取全国天气数据并保存入Mysql数据库
5星 · 资源好评率100%
好的,以下是一个简单的爬取娄底市娄星区近30天天气数据的爬虫代码,包括网络请求,html解析,数据清洗,数据存储到MySQL数据库的完整过程,你可以参考一下:
```python
import requests
from bs4 import BeautifulSoup
import pymysql
# 请求URL
url = 'http://www.tianqihoubao.com/weather/loudi/month/202101.html'
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 = 'gbk'
html = response.text
# 解析HTML
soup = BeautifulSoup(html, 'html.parser')
table = soup.find('table', class_='b')
tr_list = table.find_all('tr')[1:]
# 数据清洗
data = []
for tr in tr_list:
temp = []
td_list = tr.find_all('td')
for td in td_list:
temp.append(td.getText().strip())
data.append(temp)
# 数据存储到MySQL数据库
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='123456',
database='test',
charset='utf8'
)
cursor = conn.cursor()
for item in data:
sql = f"INSERT INTO weather (date, weather, temperature, wind) VALUES ('{item[0]}', '{item[1]}', '{item[2]}', '{item[3]}')"
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
```
这个爬虫的主要流程是:
- 发送网络请求,获取娄底市娄星区近30天天气数据的网页HTML源代码;
- 使用BeautifulSoup解析HTML,找到需要的天气信息;
- 对数据进行清洗,提取出每天的日期、天气状况、气温、风力风向;
- 将清洗后的数据存储到MySQL数据库中。
同样需要注意,这个代码中的数据库连接信息需要根据你自己的情况进行修改。另外,在实际项目中使用,应该使用参数化查询来保证安全性。
阅读全文