Scrapy
官方介绍是
An open source and collaborative framework for extracting the data you need from websites.
In a fast, simple, yet extensible way.
意思就是
一个开源和协作框架,用于以快速,简单,可扩展的方式从网站中提取所需的数据。
环境准备
本文项目使用环境及工具如下
python3
scrapy
mongodb
python3 scrapy的安装就不再叙述
mongodb图形化管理工具推荐使用nosqlmanager
项目创建
没错,我们还是挑软柿子捏,就爬取最简单的豆瓣电影top250
这个网站几乎是每个学习爬虫的人都会去爬取的网站,这个网站特别有代表性 话不多说,项目开始
创建scrapy项目需要在命令行中进行
切换到工作目录,然后输入指令 scrapy startproject douban
即创建成功,然后使用pycharm打开项目 首先看下目录结构
我们发现项目spiders中只有一个文件,放爬虫的地方怎么会只有一个__init__.py呢
别急我们还需要输入一个命令来创建基本爬虫 打开cmd切换到目录文件夹下的spiders目录
输入 scrapy genspider douban_spider https://movie.douban.com/top250
如下图创建爬虫成功
然后我们打开项目分析目录结构
douban 项目文件夹
spiders 爬虫文件夹
__init__.py
douban_spider.py 爬虫文件
__init__.py
ietms.py 定义items数据结构的地方(即我们爬取内容的属性之类的信息)
middlewares.py 中间件
pipelines.py 定义对于items的处理方法(数据清洗等)(需要在settings中开启pipelines选项)
settings.py 项目的设置文件,定义全局的各种设置(比如头部代理,任务并发量,下载延迟等等)
scrapy.cfg 项目的配置文件(包含一些默认的配置信息)
至此我们的的项目算是创建成功了
确定内容
创建好项目之后下一步就是确定我们要爬取的内容了,然后才可以开始编写我们的items.py文件
首先打开目标网页进行分析
网页中有哪些东西是我们需要的呢?
电影排名编号
电影名称
电影演职员以及年份分类
电影星级评分
评论人数
电影简介
现在就可以根据内容来编写items.py文件了
items.py文件代码编写如下
#-*- coding: utf-8 -*-
#Define here the models for your scraped items#
#See documentation in:#https://docs.scrapy.org/en/latest/topics/items.html
importscrapyclassDoubanItem(scrapy.Item):#示例
#defi