python使用scrapy在tianqi.com爬取南京天气预报
时间: 2024-04-03 15:33:32 浏览: 79
好的,以下是一个简单的 Scrapy 爬取 tianqi.com 上南京天气预报的示例:
1. 创建 Scrapy 项目
在命令行中输入以下命令:
```
scrapy startproject tianqi_nanjing
cd tianqi_nanjing
```
2. 创建爬虫
在命令行中输入以下命令:
```
scrapy genspider nanjing www.tianqi.com
```
这将在 `tianqi_nanjing/spiders` 目录下创建一个名为 `nanjing.py` 的文件,用于定义爬虫。
3. 编写爬虫代码
打开 `nanjing.py` 文件,将以下代码粘贴到文件中:
```python
import scrapy
class NanjingWeatherSpider(scrapy.Spider):
name = 'nanjing'
allowed_domains = ['www.tianqi.com']
start_urls = ['https://www.tianqi.com/nanjing/']
def parse(self, response):
# 获取天气信息
weather_info = response.xpath('//div[@class="left fl"]/div[@class="tqshow1"]/ul/li')
for info in weather_info:
date = info.xpath('h3/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 爬取 tianqi.com 上南京天气预报的示例。
阅读全文