什么是scrapy shell?
Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试xpath或css表达是,来查看他们的工作方式,方便爬取页面中的数据。
selector选择器(scrapy内置)
Selecctor有四个基本方法,最常用的还是xpath:
- xpath():传入xpath表达式,返回该列表所对应的所有节点的selector的list
- extract():序列化该节点为Unicode字符串,并返回list
- css():传入css表达式,返回该表达式的所对应的所有节点的list列表,语法同BeautifulSoup4
- re():根据传入的正则表达式对数据进行提取,返回Unicode字符串列表
Spider是做什么的?
什么是Spider?
Spider类定义了如何爬取某个(某些)网站。包括爬取动作(例如:是否跟进链接)以及如何从昂也中提取结构化数据(爬取的item)。换句话说,spider就是已经定义的爬取动作以及分析某个网页的地方。
Spider的属性和方法
主要属性和方法:
name:定义spider名字的字符串。例如,如果spider爬取website.com,该spider通常会被命名为website
allowed_domains:包含了允许爬取的域名(domain)的列表,可选。
start_url:初始URL的元祖或列表。当没有给定特定的url时,spider将从该列表中开始进行爬取。
start_requests(self):该方法返回一个可迭代对象(iterable)。该对象包含了spider用于爬取(默认实现是用start_url中的url)的第一个Request。
parse(self, response):当请求url返回网页没有指定回调函数时,默认的Request对象回调函数。用来处理网页返回的response,以及生成的item或Request对象。
怎样编写Spider爬取数据?
参见: