Scrapy 库应用

常用命令

命令 说明 格式
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命令:

  1. 打开 cmd 命令行,进入要创建的文件夹内
  2. 输入:scrapy startproject “FileName”
  3. 创建存放代码的.py文件
    3.1 进入cd FileName,输入“ scrapy genspider first "xxxxxx.com"
    first 是爬虫名,文件放置在spider文件下
    “xxxxxx.com” 是为了方便自定义的爬取网站的域名
  4. 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_
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值