在本篇博客中,我们将使用Scrapy框架完成一个入门爬虫程序。
- 在命令行创建scrapy项目
首先在命令行进入PyCharm的项目目录,然后执行 scrapy startproject 项目名(如ScrapyExample),生产爬虫项目。会自动生成项目结构和一些文件:
- 在命令行常见Spider
Spider 是一个自定义的类, Scrapy 用它来从网页里抓取内容,并解析抓取的结果。这个类必须继承Spider 类(scrapy.Spider) ,需定义Spider 的名称和起始请求,以及解析爬取结果的方法。
进入之前生成的spiders目录,执行下面的命令:
命令:scrapy genspider Spider名称 网站域名
例:scrapy genspider quotes quotes.toscrape.com
此时会在spiders目录下生成一个以爬虫名字命名的.py文件:
- 创建Item
Item 是保存爬取数据的容器。创建Item 需要继承scrapy.Item 类,并且定义类型为scrapy.Field 的字段。
首先我们来看一下,我们之前要爬取的那个网站是什么,打开http://quotes.toscrape.com/:
网站上主要是一些名人名言,每一条包含三个部分:名言、作者、标签。
接下来我们要自定义items.py(原本是空的,只有主要结构),定义我们想要的字段:
# -*- coding: utf-8 -*-
# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html
import scrapy
class QuoteItem(scrapy.Item):#类名默认是项目名+Item,可以修改.如QuoteItem
# define the fields for your item here like:
# name = scrapy.Field()
text = scrapy.Field() #名言
author = scrapy.Field() #作者
tags = scrapy.Field() #标签
pass
- 编辑spider中的parse方法(用于解析response)
对response 变量包含的内容进行解析,可以使用CSS选择器或Xpath选择器,解析结果赋值给Item中的字段。quot