如何用Scrapy爬取IMDB TOP250中2000年及以后上映的电影?
修改后可直接运行的代码
import scrapy class imdb_project(scrapy.Spider): name = 'imdb' start_urls = ['https://www.imdb.com/chart/top'] def parse(self, response): # 遍历每个电影对应的标题栏节点,同时包含电影名和年份元素 for title_item in response.css('.titleColumn'): # 提取年份文本,去掉前后括号后转成整数 movie_year = int(title_item.css('.secondaryInfo::text').get().strip('()')) # 仅输出2000年及以后的电影名称 if movie_year >= 2000: print(title_item.css('a::text').get())
改动说明
- 原来的逻辑是直接遍历标题栏下的电影名a标签,现在改为遍历整个
.titleColumn节点,方便同时获取同节点下的年份元素 - 年份存储在class为
secondaryInfo的span标签中,默认文本带前后括号,用Python自带的strip('()')方法即可直接去除括号,不需要使用正则 - 增加你预想的年份判断逻辑,符合条件的电影才会输出名称
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

