scrapy爬取豆瓣热门电影

放弃谁都可以,千万不要放弃自己!

640?wx_fmt=png


目标

采集豆瓣热门电影的基本信息,导演、编剧、主演、上映时间等并将数据存入MySql中。

该项目中使用的开发环境:

  • python3.6

  • scrapy1.5

  • mysql5.7


scrapy编写

scrapy三部曲Item、spider、pipelines,下面我们依次来编写者三个模块的代码。

Item

item中主要定义要采集的字段,我们主要采集电影标题、导演、编剧、主演等字段,具体字段如下:

 
  


Pipelines

pipelines管道主要用来初始化数据库的连接和相关数据可的操作。所以我们将涉及数据库的操作都放在这里进行,项目中pipelines的代码如下:

 
  



spider

spider是scrapy的核心部分,在该项目中应用了scrapy提供的表单模拟登录功能进行登录,在不登录的情况下,有可能会被系统检测到非法操作,从而禁止你的IP访问。经过我对豆瓣热门电影的分析,在列表页利用的是js渲染数据,详情页则没有使用js渲染,故获取列表页是,我们从js中获取数据,利用json.loads将数据转换成json数据,便于数据的提取,详情页利用scrapy提供的xpath解析数据。spider代码如下:

最后

运行结果就不在这里贴出来了,项目github地址豆瓣电影,需要注意的一个地方,需要将Setting中的ROBOTSTXT_OBEY设置为False,js获取电影列表数据是好像设置了不让爬取。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值