用scrapy爬取豆瓣电影
时间: 2023-08-21 13:06:39 浏览: 172
Python scrapy爬取豆瓣电影top250
好的,以下是使用Scrapy爬取豆瓣电影的步骤:
1.创建Scrapy项目
在命令行中输入以下命令,在指定位置创建一个名为douban_movie的Scrapy项目。
```
scrapy startproject douban_movie
```
2.编写Spider
在项目的spiders目录下,创建一个名为douban_spider.py的Python文件。并在其中编写Spider代码。
```
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.item'):
yield {
'title': movie.css('span.title::text').get(),
'rating': movie.css('span.rating_num::text').get(),
'link': movie.css('div.hd a::attr(href)').get()
}
next_page = response.css('span.next a::attr(href)').get()
if next_page is not None:
yield response.follow(next_page, self.parse)
```
在这个Spider中,我们首先定义了Spider的名称和允许爬取的域名。然后,我们指定了起始URL,并定义了parse方法来解析网页内容。
在parse方法中,我们使用CSS选择器选取出了每部电影的标题、评分和详情链接,并将它们封装成字典形式返回。同时,我们也使用了response.follow方法来跟随下一页链接继续爬取。
3.设置项目配置
打开项目的settings.py文件,将ROBOTSTXT_OBEY设置为False,这样我们就可以爬取豆瓣电影网站了。
```
ROBOTSTXT_OBEY = False
```
4.运行Spider
在项目的根目录下,执行以下命令来运行Spider。
```
scrapy crawl douban -o movies.csv
```
这个命令会执行我们编写的Spider,并将结果保存到一个名为movies.csv的CSV文件中。
恭喜你,现在你已经成功使用Scrapy爬取了豆瓣电影网站的电影信息!
阅读全文