编写爬虫项目,从网站 http://www.weather.com.cn/ shandong/index.shtml 爬取山东各城市的天气预报数 据,并把爬取到的天气数据写入本地文本文件 weather.txt
时间: 2024-11-13 19:27:16 浏览: 153
编写一个爬虫项目从特定网站抓取数据通常涉及以下几个步骤:
1. **分析网页结构**:首先需要打开`http://www.weather.com.cn/shandong/index.shtml`这个页面,查看HTML结构,找到包含天气信息的部分,特别是城市名称和天气预报的数据。
2. **选择合适的工具库**:Python是一种常用的爬虫语言,可以选择BeautifulSoup、Scrapy或Requests等库来解析HTML并提取数据。
3. **发送HTTP请求**:使用requests库发送GET请求获取网页内容。
4. **解析HTML**:通过BeautifulSoup解析HTML文档,定位到包含天气信息的标签,如`<div>`或`<ul>`元素。
5. **提取数据**:找到每个城市的天气预报数据,这可能包括城市名、温度、日期等字段,然后存储在变量中。
6. **保存到文件**:将提取的数据按照指定格式(例如CSV或JSON)写入本地文本文件weather.txt。
下面是一个简化的示例代码片段,假设天气数据在`<li>`标签内:
```python
import requests
from bs4 import BeautifulSoup
# 发送HTTP请求
url = "http://www.weather.com.cn/shandong/index.shtml"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取天气数据
data_list = []
forecast_divs = soup.find_all('li') # 假设天气预报在li标签下
for div in forecast_divs:
city_data = {} # 存储每个城市的天气数据
city_name = div.find('span', class_='city').text # 城市名
temp = div.find('span', class_='temp').text # 温度
date = div.find('span', class_='date').text # 日期
city_data['city'] = city_name
city_data['temperature'] = temp
city_data['date'] = date
data_list.append(city_data)
# 保存数据到文件
with open("weather.txt", "w", encoding="utf-8") as f:
for city in data_list:
f.write(f"{city['city']}, {city['temperature']}, {city['date']}\n")
#
阅读全文