天天看点

python应用:爬虫框架Scrapy系统学习第四篇——scrapy爬取笔趣阁小说

使用cmd创建一个scrapy项目:

  scrapy startproject project_name (project_name 必须以字母开头,只能包含字母、数字以及下划线<underscorce>)

  项目目录层级如下:

  

python应用:爬虫框架Scrapy系统学习第四篇——scrapy爬取笔趣阁小说

声明Item

  声明我们可能用到的所有字段,包括管理字段等。管理字段可以让我们清楚何时(date)、何地(url server)及如何(spider)执行爬去,此外,还可以自动完成诸如使item失效、规划新的抓取迭代或是删除来自有问题的爬虫的item。

url

response.url

例:‘http://www.baidu.com’

project

self.ettings.get('BOT_NAME')

例:‘crawl_novel’

spider

self.name

例:‘basic’

server

socket.gethostname()

例:‘scrapyserverl’

date

datetime.datetime.now()

例:‘datetime.datetime(2019,1,21……)’

编写爬虫并填充item

使用scrapy genspider 命令

  scrapy genspider -l         查看可用模板

  scrapy genspider -t         使用任意其他模板创建爬虫

  e.g.  scrapy genspider basic www         spiders目录中新增一个basic.py文件,并限制只能爬取www域名下的url

使用 scrapy crawl 命令运行爬虫文件

  e.g.  scrapy crawl basic          (basic是spider下的爬虫文件)

使用 scrapy parse命令用不同页面调试代码

  e.g. scrapy parse --spider=basic  http://www.……

使用scrapy crawl basic -o +文件名.文件类型  保存文件

  e.g. scrapy crawl basic -o items.json(items.csv、items.j1、items.xml)

basic.py

清理——item装载器、添加管理字段,并对数据进行格式化和清洗

使用ItemLoader以代替那些杂乱的extract()和xpath()操作

使用MapCompose参数

使用lambda表达式

创建contract,检验代码可用性

使用scrapy check + 文件名 执行

  e.g. scrapy check basic