按照官网教程走一遍
创建项目
scrapy startproject tutorial
脚本编辑
(使用scrapy genspider task_name url
命令自动生成任务脚本,但自己手写一遍更利于理解)
爬虫脚本位于项目中的spider/目录中,任务流程封装在一个类中,该类继承自scrapy.Spider
类。
- 任务类中的属性/方法:
- name:同一项目下的各爬虫任务name属性必须唯一
- start_requests(self):通过
scrapy.Reuqest(url=url, callback=parse)
生成请求;不过通常情况下,可以使用start_urls
这一类属性进行替代 - parse(self, response):对请求结果进行解析/处理
交互环境
scrapy shell "http://quotes.toscrape.com"
注意:在windows操作系统下,url必须使用双引号
响应实体的解析
- response.css()解析
- response.xpath()解析
不过官方更推荐xpath方法解析
数据储存
scrapy crawl quotes -o file_name.json
保存为json格式有一个历史遗留问题,多次执行是以追加的形式写入文件中的
进一步爬取
在parse()
方法中
scrapy.Request(url, callback=self.parse)
-
response.follow(relative_url, callback=self.parse)
,支持相对路径的解析
爬虫参数
scrapy crawl task_name -o file_name.json -a para=sth
-a
后边的参数会成传入爬虫任务类中的__init__()
方法中,c
网友评论