scrapy爬取豆瓣电影
时间: 2023-10-01 21:11:20 浏览: 105
好的,以下是爬取豆瓣电影的简单示例:
1. 首先,我们需要安装Scrapy。可以在命令行中使用以下命令进行安装:
```
pip install scrapy
```
2. 创建一个Scrapy项目。在命令行中使用以下命令创建一个项目:
```
scrapy startproject douban_movie
```
这将创建一个名为`douban_movie`的文件夹,其中包含了Scrapy项目的基本结构。
3. 创建一个Spider。在Scrapy中,Spider是用于定义如何爬取网站的类。我们可以创建一个Spider来爬取豆瓣电影信息。在`douban_movie/spiders`文件夹下创建一个名为`douban_spider.py`的文件,并添加以下代码:
```python
import scrapy
class DoubanSpider(scrapy.Spider):
name = 'douban'
allowed_domains = ['movie.douban.com']
start_urls = ['https://movie.douban.com/top250']
def parse(self, response):
pass
```
在上面的代码中,我们定义了一个名为`DoubanSpider`的Spider,并设置了起始URL和允许的域名。在`parse`方法中,我们将会编写解析响应的代码。
4. 编写解析代码。在`parse`方法中,我们需要编写代码来解析响应并提取我们需要的信息。以下是一个简单的例子,用于提取豆瓣电影Top250中每个电影的名称和评分:
```python
import scrapy
class DoubanSpider(scrapy.Spider):
name = 'douban'
allowed_domains = ['movie.douban.com']
start_urls = ['https://movie.douban.com/top250']
def parse(self, response):
for movie in response.xpath('//div[@class="info"]'):
yield {
'title': movie.xpath('a/span[@class="title"]/text()').extract_first(),
'rating': movie.xpath('div[@class="star"]/span[@class="rating_num"]/text()').extract_first(),
}
```
在上面的代码中,我们使用XPath来提取电影名称和评分,并使用`yield`将结果返回给Scrapy框架。
5. 运行Spider。在命令行中使用以下命令来运行Spider:
```
scrapy crawl douban -o movies.csv
```
在上面的命令中,`douban`是Spider的名称,`movies.csv`是我们将结果保存到的文件名。运行完成后,我们将在当前目录下找到一个名为`movies.csv`的文件,其中包含了豆瓣电影Top250中每个电影的名称和评分。
阅读全文