用scrapy写一个爬取豆瓣电影的脚本
时间: 2023-11-13 18:03:53 浏览: 176
Python利用Scrapy框架爬取豆瓣电影示例
好的,以下是一个简单的使用Scrapy爬取豆瓣电影的脚本:
首先,创建一个Scrapy项目:
```
scrapy startproject douban_movie
```
然后,在项目的根目录下创建一个名为douban_movie_spider.py的爬虫文件。在该文件中,编写如下代码:
```python
import scrapy
class DoubanMovieSpider(scrapy.Spider):
name = 'douban_movie'
allowed_domains = ['movie.douban.com']
start_urls = ['https://movie.douban.com/top250']
def parse(self, response):
for movie in response.xpath('//div[@class="hd"]'):
yield {'title': movie.xpath('a/span[@class="title"]/text()').extract_first()}
next_page = response.xpath('//span[@class="next"]/a/@href').extract_first()
if next_page:
yield scrapy.Request(response.urljoin(next_page), callback=self.parse)
```
在这个爬虫中,我们首先定义了一个名为DoubanMovieSpider的类,它继承自Scrapy的Spider类。我们设置了一些属性,包括name(爬虫的名称)、allowed_domains(允许爬取的域名)和start_urls(起始URL)。
在parse()方法中,我们使用XPath表达式来提取每部电影的标题,并将其作为一个字典的值返回。我们还使用XPath表达式来提取下一页的URL,并使用Scrapy的Request对象获取该URL并继续调用parse()方法。
最后,我们需要在命令行中运行以下命令来启动这个爬虫:
```
scrapy crawl douban_movie -o movies.json
```
这个命令将使用我们刚刚编写的爬虫来爬取豆瓣电影Top250,并将结果保存为JSON文件。
阅读全文