爬虫项目(三):豆瓣TOP250电影

本文介绍如何使用Scrapy框架抓取豆瓣电影Top250的数据,包括安装配置、项目搭建、编写爬虫及数据存储等关键步骤。

本项目是基于Scrapy框架。

Scrapy安装介绍

Scrapy的安装有多种方式,它支持Python2.7版本及以上或Python3.3版本及以上。以下说明Python3环境下最懒最简单的安装过程。

键盘Win+R键打开命令输入符(运行),输入cmd


接着在输入pip install scrapy即可以安装scrapy框架模块


等待一会,会出现Successful……语句。

默认安装成功之后就开始项目了。


首先要使用Scrapy抓取一个网站一共需要四个步骤:

1.创建一个Scrapy项目;

2.定义Item容器;

3.编写爬虫;

4.存储内容。


在cmd中首先要切换到桌面(cd desktop),再输入scrapy startproject movie

这时会在桌面创建好一个名为movie的文件夹

movie文件夹的目录如下

movie/

    scrapy.cfg

    movie/

        __init__.py

        items.py

        pipelines.py

        settings.py

        spiders/

            __init__.py

需要做的就是在spiders目录下再创建一个新的*.py文件,比如Moviespider.py

接着先放下这边的工作,你需要登录到豆瓣TOP250的网址:https://movie.douban.com/top250 ,页面如下:


你想要做的就是 获取你要爬取的信息,我们可以直观的看到有电影名,电影简述,评分,还有一句格言。这就是我们需要爬取的数据。点击键盘F12或鼠标右键审查元素。

以肖申克的救赎为例:


titile标题在div class="hd"/a/span标签中,movieInfo电影简介在div class="bd"/p标签中,star评分在div class="bd"/span class="rating_num"标签中,quote格言在div class="bd"/p class="quote"标签中,记住这些元素。


接下来定义Item容器。在item.py中:


紧接着在Moviespider.py中编写我们的爬虫程序:


最后在cmd命令行中首先先切换到movie的文件夹中:cd desktop/movie

再输入:scrapy crawl movie

要想存储内容为json/csv文件就输入:scrapy crawl movie -o movie.json/scrapy crawl movie -o movie.csv

也可以通过编写pipelines.py的程序进行存储。

注意:

    可能会出现几个坑:

    (1)出现了403的错误,如下:

        DEBUG:   Crawled(403)<GET http://……>(referer:None)

        原因:代理被禁止访问

        解决方法:

        在settings.py添加设置代理User-Agent:

    USER_AGENT='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'

    (2)出现了Forbidden by robots.txt的错误,如下:

        [scrapy]DEBUG: Forbidden by robots.txt:<GET https://……>

        原因:scrapyl是遵守robot协议的,在访问网址前会先访问robot.txt来查看自己是否有权限访问。如果网站不允许被爬,就不能访问。

        解决方法:

        ROBOTSTXT_OBEY=True 改为 ROBOTSTXT_OBEY=False

    (3)若启用了一个Item Pipeline组件,你必须将它的类添加到ITEM_PIPELINES配置中

        解决方法:

        settings.py中 ITEM_PIPELINES={

        'movie.pipelines.MoviePipeline':300,

}

            

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值