python使用scrapy爬取南京天气预报
时间: 2023-09-09 13:08:38 浏览: 139
好的,以下是一个简单的 Scrapy 爬取南京天气预报的示例:
1. 创建 Scrapy 项目
在命令行中输入以下命令:
```
scrapy startproject nanjing_weather
cd nanjing_weather
```
2. 创建爬虫
在命令行中输入以下命令:
```
scrapy genspider nanjing www.weather.com.cn
```
这将在 `nanjing_weather/spiders` 目录下创建一个名为 `nanjing.py` 的文件,用于定义爬虫。
3. 编写爬虫代码
打开 `nanjing.py` 文件,将以下代码粘贴到文件中:
```python
import scrapy
class NanjingWeatherSpider(scrapy.Spider):
name = 'nanjing'
allowed_domains = ['www.weather.com.cn']
start_urls = ['http://www.weather.com.cn/weather/101190101.shtml']
def parse(self, response):
# 获取天气信息
weather_info = response.xpath('//div[@id="7d"]/ul/li')
for info in weather_info:
date = info.xpath('h1/text()').get()
weather = info.xpath('p[@class="wea"]/text()').get()
temperature = info.xpath('p[@class="tem"]/span/text()').get() + info.xpath('p[@class="tem"]/i/text()').get()
wind = info.xpath('p[@class="win"]/i/text()').get()
yield {
'city': '南京',
'date': date,
'weather': weather,
'temperature': temperature,
'wind': wind,
}
```
以上代码定义了一个名为 `NanjingWeatherSpider` 的爬虫,首先在 `start_urls` 中定义了南京天气预报页面的链接,然后在 `parse` 方法中获取天气信息,并将数据以字典的形式返回。
4. 运行爬虫
在命令行中输入以下命令:
```
scrapy crawl nanjing -o nanjing_weather.json
```
这将运行爬虫并将爬取到的数据保存到 `nanjing_weather.json` 文件中。
以上就是一个简单的 Scrapy 爬取南京天气预报的示例。
阅读全文