python scrapy-redis爬取豆瓣电影top250
时间: 2023-06-28 10:11:38 浏览: 207
很好,下面是一个使用 Scrapy-Redis 爬取豆瓣电影 Top250 的示例:
1. 安装 Scrapy-Redis
```
pip install scrapy-redis
```
2. 配置 Redis
在 `settings.py` 中添加以下内容:
```python
# 开启调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
# 启用增量式爬取
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
# 配置 Redis
REDIS_URL = 'redis://127.0.0.1:6379'
```
3. 编写 Spider
```python
# -*- coding: utf-8 -*-
import scrapy
from scrapy_redis.spiders import RedisSpider
class DoubanTop250Spider(RedisSpider):
name = 'douban_top250'
allowed_domains = ['douban.com']
redis_key = 'douban_top250:start_urls'
def parse(self, response):
# 解析页面,获取电影信息
items = response.xpath('//div[@class="info"]')
for item in items:
title = item.xpath('div[@class="hd"]/a/span[@class="title"]/text()').extract_first()
score = item.xpath('div[@class="bd"]/div[@class="star"]/span[@class="rating_num"]/text()').extract_first()
yield {'title': title, 'score': score}
# 获取下一页 URL,加入 Redis 队列
next_url = response.xpath('//span[@class="next"]/a/@href')
if next_url:
self.server.lpush(self.redis_key, next_url.extract_first())
```
4. 启动 Redis 和 Spider
在终端中启动 Redis:
```
redis-server
```
在项目目录下启动 Spider:
```
scrapy crawl douban_top250
```
以上就是使用 Scrapy-Redis 爬取豆瓣电影 Top250 的步骤。
阅读全文