Scrapy学习笔记

Scrapy 简介

Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

Scrapy 初步使用

1.安装

1
pip3 install scrapy

2.创建项目

1
2
3
mkdir Scrapy
cd Scrapy/
scrapy startproject tutorial

3.创建爬虫

1
2
cd tutorial
scrapy genspider example example.com

4.启动爬虫

1
scrapy crawl example

5.保存爬取到的数据

1
scrapy crawl example -o example.json

Selectors 选择器简介

1.XPath 表达式的例子及对应的含义

  • /html/head/title: 选择 HTML 文档中标签内的元素
  • /html/head/title/text(): 选择上面提到的元素的文字
  • //td: 选择所有的元素
  • //div[@class=”mine”]: 选择所有具有 class=”mine”属性的 div 元素

2.Selector 四个基本的方法

  • xpath(): 传入 xpath 表达式,返回该表达式所对应的所有节点的 selector list 列表 。
  • css(): 传入 CSS 表达式,返回该表达式所对应的所有节点的 selector list 列表.
  • extract(): 序列化该节点为 unicode 字符串并返回 list。
  • re(): 根据传入的正则表达式对数据进行提取,返回 unicode 字符串 list 列表。

3.在 Shell 中使用 Selector 选择器

1
2
3
scrapy shell "example.com"
response.headers #response 的包头
response.body #response 的包体

可用的工具命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
在 project_name 文件夹下创建一个名为 project_name 的 Scrapy 项目
scrapy startproject <project_name>
# 在当前项目中创建 spider
scrapy genspider [-t template] <name> <domain>
# 使用 spider 进行爬取
scrapy crawl <spider>
# 运行 contract 检查
scrapy check [-l] <spider>
# 列出当前项目中所有可用的 spider
scrapy list
# 使用 EDITOR 中设定的编辑器编辑给定的 spider
scrapy edit <spider>
# 使用 Scrapy 下载器(downloader)下载给定的 URL,并将获取到的内容送到标准输出
scrapy fetch <url>
# 在浏览器中打开给定的 URL,并以 Scrapy spider 获取到的形式展现
scrapy view <url>
# 以给定的 URL(如果给出)或者空(没有给出 URL)启动 Scrapy shell
scrapy shell [url]
# 获取给定的 URL 并使用相应的 spider 分析处理
scrapy parse <url> [options]
# 获取 Scrapy 的设定
scrapy settings [options]
# 在未创建项目的情况下,运行一个编写在 Python 文件中的 spider
scrapy runspider <spider_file.py>
# 输出 Scrapy 版本
scrapy version [-v]
# 将项目部署到 Scrapyd 服务
scrapy deploy [ <target:project> | -l <target> | -L ]
# 运行 benchmark 测试
scrapy bench

附:一个完整的Scrapy例子

参考:

八宝粥 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!