Scrapy爬虫实战项目【003】 - 抓取360图解电影

该博客介绍了如何使用Scrapy爬虫抓取360图解电影的数据,将信息存储到MONGODB数据库,并按电影名称分类保存图片到本地。通过分析目标网址的JSON数据,自定义MongoPipeline和ImagePipeline,实现了图片的下载与分类。文章结尾提到目前的图片分类方法效率较低,提出了改进方案。
摘要由CSDN通过智能技术生成

爬取360图解电影

原创

目的:使用Scrapy爬取360图解电影,保存至MONGODB数据库,并将图集按电影名称分类保存至本地

目标网址:http://image.so.com/z?ch=video

分析/知识点:

  1. 爬取难度:
    a. 入门级,电影索引页/详情页都是返回json数据结果;
    b. 图片分类保存:需要对内置ImagesPipeline进行继承后改写几个方法;

实际步骤:

  1. 创建Scrapy项目/tujiemovie360(spider)
Terminal: > scrapy startproject tujiemovie360
Terminal: > scrapy genspider tujiemovie image.so.com/z?ch=video   
  1. 配置settings.py文件
# MONGODB配置
MONGO_URI = 'localhost'
MONGO_DB = 'maoyan_movie'

# 图集保存默认路径
IMAGES_STORE = './movies/'

# 不遵守爬取机器人协议
ROBOTSTXT_OBEY = False

# 设置headers
DEFAULT_REQUEST_HEADERS = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language': 'en',
}

# 启用ImagePipeline/MongoPipeline
ITEM_PIPELINES = {
    'tujiemovie360.pipelines.ImagePipeline': 300,
    'tujiemovie360.pipelines.MongoPipeline': 301,
}
  1. 编写items.py文件
    注:此处创建了电影图集索引Item/详情页Item
# 图集IndexItem
class IndexItem(Item):
    id = Field()            # 电影图集id,重要
    actor = Field()         # 演员
    director = Field()      # 导演
    group_title = Field()   # 电影名称
    total_count = Field()   # 电影图集图片总数


# 图集DetailItem
class Det
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值