Scrapy框架

Scrapy是一个高效的爬虫框架,方便我们进行爬虫的开发。

Scrapy架构图(绿线是数据流向):

1.升级pip

pip install --upgrade pip

注意:

在命令行升级后输入pip -V查看版本的时候如果提示如下(无法打开): Cannot open E:\python\PycharmProjects\untitled\venv\Scripts\pip-script.py

解决办法:

此问题是只升级了python3下的pip版本,项目下的venv中pip并没有升级,所以出现这样问题的解决办法是复制c:\python3\Scripts下的exe文件到项目venv下的scripts中覆盖并替换旧版本pip。

2.安装Scrapy

pip install Scrapy

3.新建Scrapy项目

scrapy startproject 项目名

例:

scrapy startproject benzhu

问题:

当在pycharm项目出现import scrapy报错的时候。

解决办法:

File >> settings >> Project Interpreter >> +号 >> 搜索scrapy >> 点击Install Package选择和下载的版本一致就行。

4.制作爬虫

4.1创建爬虫

进入mySpider/spider目录 输入如下命令:

scrapy genspider itcast "爬虫名称"

4.2创建模型

打开项目底下的items.py然后在文件中构建一个item模型。

说明一下这个模型类似于Bean,用来构建我们爬虫的对象。

class VirmachItem(scrapy.Item):
price = scrapy.Field()
addres = scrapy.Field()

4.3制作爬虫

打开 mySpider/spider目录里的 itcast.py

修改代码制作爬虫,一般需要xpath进行锁定标签对。

response.xpath('xpath语句').

4.4运行爬虫

scrapy crawl 项目名称

4.5.保存数据

scrapy保存信息的最简单的方法主要有四种,-o 输出指定格式的文件,命令如下:

scrapy crawl itcast -o teachers.json

json lines格式,默认为Unicode编码:

scrapy crawl itcast -o teachers.jsonl

csv 逗号表达式,可用Excel打开:

scrapy crawl itcast -o teachers.csv

xml格式:

scrapy crawl itcast -o teachers.xml

4.6.注意

注意: Python2.x默认编码环境是ASCII,当和取回的数据编码格式不一致时,可能会造成乱码;我们可以指定保存内容的编码格式,一般情况下,我们可以在代码最上方添加:

import sys

reload(sys)

sys.setdefaultencoding("utf-8")