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获取电影列表数据是好像设置了不让爬取。



你可能感兴趣的:(scrapy爬取豆瓣热门电影)