常用命令
命令 | 说明 | 格式 |
startproject | 创建一个新工程 | scrapy startproject [dir] |
genspider | 创建一个爬虫 | scrapy genspider [options] |
settings | 获取爬虫配置信息 | scrapy settings [options] |
crawl | 运行一个爬虫 | scrapy crawl |
list | 列出工程中所有的爬虫 | scrapy list |
shell | 启动URL调式命令行 | scrapy shell [url] |
一 流程
1 创建项目
在shell中使用scrapy startproject命令:
- 打开 cmd 命令行,进入要创建的文件夹内
- 输入:scrapy startproject “FileName”
- 创建存放代码的.py文件
3.1 进入cd FileName
,输入“scrapy genspider first "xxxxxx.com"
”
first 是爬虫名,文件放置在spider文件下
“xxxxxx.com” 是为了方便自定义的爬取网站的域名 - pycharm导入项目“FileName”
scrapy.cfg | 部署Srcapy爬虫的配置文件 |
myscrapy/ | 该项目的python模块。之后您将在此加入代码 外层目录 |
myscrapy/spiders/ | 放置spider代码的目录 |
myscrapy/items.py | 项目中的item文件 代码模板(继承类) |
myscrapy/pipelines.py | 项目中的pipelines管道文件 代码模板(继承类) |
myscrapy/middlewares.py | 项目中的middlewares中间件文件 代码模板(继承类) |
myscrapy/settings.py | 项目的设置文件 |
init.py | 初始化脚本 |
spiders/ | Spiders 代码模板目录(继承类) |
2 分析页面
选用Chrome浏览器的开发者工具(Tools→Developer tools)分析页面
2.1 数据信息
查看要爬取的信息所在位置
2.2 链接信息
可以通过单击next按钮访问下一页,选中页面下方的next按钮并右击,寻找下一页的URL
2.3 实现Spider
在创建的first.py编写爬虫
- 实现一个Spider只需要完成下面4个步骤
- 步骤 01 继承scrapy.Spider。
- 步骤 02 为Spider取名。
- 步骤 03 设定起始爬取点。
- 步骤 04 实现页面解析函数。
2.3.1 继承scrapy.Spider
Scrapy框架提供了一个Spider基类,我们编写的Spider需要继承它:
import scrapy
class BooksSpider(scrapy.Spider):
...
这个Spider基类实现了以下内容:
- 供Scrapy引擎调用的接口,例如用来创建Spider实例的类方法from_crawler。
- 供用户使用的实用工具函数,例如可以调用log方法将调试信息输出到日志。
- 供用户访问的属性,例如可以通过settings属性访问配置文件中的配置。
2.3.2 为Spider命名
在一个Scrapy项目中可以实现多个Spider,每个Spider需要有一个能够区分彼此的唯一标识,Spider的类属性name便是这个唯一标识。
执行scrapy crawl命令时就用到了这个标识,告诉Scrapy使用哪个Spider进行爬取。
import scrapy
class BooksSpider(scrapy.Spider):
name = "books"
...
2.3.3 设定起始爬取点
可以通过类属性start_urls来设定起始爬取点
...
start_urls = ['http://books.toscrape.com/']
...
- start_urls通常被实现成一个列表
- 在FileName中实现start_requests方法(覆盖基类Spider的start_