使用scrapy爬取某城市天气预报 编写爬虫项目,从https://www.tianqi.com网站爬取某城市(自选)的天气预报数据,并把爬取到的天气数据写入本地文本文件weather.txt。提示: (1) 安装Python扩展库scrapy, 创建爬虫项目,将需要获取的字段名填写进去; (2)将爬取到的数据写入文件weather.txt;
时间: 2024-04-01 10:31:14 浏览: 240
好的,以下是针对您的问题的回答:
首先,您需要安装Scrapy和BeautifulSoup库,可以使用以下命令进行安装:
```
pip install scrapy
pip install beautifulsoup4
```
然后,创建一个新的Scrapy项目:
```
scrapy startproject weather
```
在weather/spiders目录下,创建一个名为weather_spider.py的Python文件,并添加以下代码:
```python
import scrapy
from bs4 import BeautifulSoup
class WeatherSpider(scrapy.Spider):
name = 'weather'
allowed_domains = ['tianqi.com']
start_urls = ['https://www.tianqi.com/beijing/']
def parse(self, response):
soup = BeautifulSoup(response.text, 'html.parser')
data = soup.find_all('div', {'class': 'weatherbox'})
weather_data = []
for day in data:
date = day.find('h3').text.strip()
weather = day.find('p').text.strip()
temperature = day.find('div', {'class': 'temp'}).text.strip()
weather_data.append({'date': date, 'weather': weather, 'temperature': temperature})
with open('weather.txt', 'w') as f:
for item in weather_data:
f.write(str(item) + '\n')
```
在上面的代码中,我们定义了一个名为WeatherSpider的类,它继承了Scrapy的Spider类。在类中,我们指定了要爬取的网站的域名和起始URL。在parse()方法中,我们使用BeautifulSoup库解析HTML响应,并提取出日期、天气和温度数据。最后,我们将数据写入weather.txt文件中。
最后,您可以在命令行中运行以下命令启动爬虫:
```
scrapy crawl weather
```
这将启动名为weather的爬虫,并开始抓取数据。抓取完成后,您可以在weather目录下找到weather.txt文件,其中包含抓取到的天气数据。
阅读全文