scrapy 简单案例
时间: 2023-09-12 16:11:55 浏览: 43
下面是一个Scrapy的简单案例,可以爬取豆瓣电影Top250的电影名称和评分:
1. 创建Scrapy项目
在命令行中执行以下命令创建一个新的Scrapy项目:
```
scrapy startproject douban
```
这将在当前目录下创建一个名为douban的Scrapy项目。
2. 定义Spider
在douban/spiders目录下创建一个名为douban_spider.py的Python文件,定义一个Spider类,用于爬取豆瓣电影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.css('div.info'):
yield {
'title': movie.css('div.hd a span:first-child::text').extract_first(),
'rating': movie.css('div.star span.rating_num::text').extract_first(),
}
next_page = response.css('span.next a::attr(href)').extract_first()
if next_page is not None:
yield response.follow(next_page, self.parse)
```
以上代码中,我们定义了一个名为DoubanSpider的Spider类,它的属性包括:
- name: 爬虫名称,用于区分不同的Spider。
- allowed_domains: 允许爬取的网站域名。
- start_urls: 爬虫起始URL。
在parse方法中,我们使用了Scrapy自带的Selector来解析HTML页面,使用CSS选择器提取电影名称和评分。同时,我们使用了response.follow方法来处理翻页,如果下一页存在,则继续调用parse方法进行解析。
3. 运行Spider
在命令行中执行以下命令运行我们定义的Spider:
```
scrapy crawl douban -o movies.csv
```
这将运行名为douban的Spider,并将爬取到的数据保存到movies.csv文件中。
4. 查看结果
在执行完上述命令后,我们可以查看movies.csv文件,其中包含了豆瓣电影Top250的电影名称和评分。