spider中定义了如何爬取某些网站。
中文文档主要内容
1.spider中起始的request是通过调用start_request()来采取的,start_request()读取start_url中的url,并以parse为回调函数生成reuqest
2在回调函数内即parse中分析返回的网页内容,返回Item或者Request或者一个包括二者的可迭代容器。返回的request对象之后会经过scrapy处理,下载下你想要下载下的响应的内容,并调用callback函数。
def parse(self, response):
# parse方法是默认的回调,当爬虫开始时会从start_url得到链接,
# 然后自动调用parse方法进行解析
quotes =response.css('.quote')
# 选择出每一个区域块
for quote in quotes: # 循环每一个区域块
item = QuoteItem()
text = quote.css('.text::text').extract_first()
author = quote.css('.author::text').extract_first()
tags = quote.css('.tags .tag::text').extract()
item['text'] = text
item['author'] = author
item['tags'] = tags
yield item
# .text::text意思是获取class=text的文本内容
next = response.css('.pager .next a::attr(href)').extract_first()
# 得到的只是url的一部分
url = response.urljoin(next)
# 使用join构建完整的url
yield scrapy.Request(url=url,callback=self.parse)
# 生成request
3.在回调函数内,可以使用选择器来分析网页内容
4由spider返回的item存到数据库中。