本项目是基于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,
}
本文介绍如何使用Scrapy框架抓取豆瓣电影Top250的数据,包括安装配置、项目搭建、编写爬虫及数据存储等关键步骤。
2366

被折叠的 条评论
为什么被折叠?



